RHEL的权限管理

目录

一.所有者和所属组

二.查看及修改权限 


一.所有者和所属组

为了理解所有者和所属组的概念,我们先看图9-1。(图9-1来自于千千简笔画, 简笔画教程图片步骤_简笔画大全_简笔画图片 (jianbihua.com) ;这里引用一下)
张老板是某公司老板,买了一套房作为员工宿舍给A部门员工居住。张老板是房主,所以他对房子具有很多权限,A部门员工只有使用权而不能私自装修等,除张老板和A部门员工外,其他所有人都没 有任何权限。
那么,这套房子对三组人设置的权限如表9-1所示。

  

同理,在Linux系统中对文件的授权也是通过这样的分组来进行的,如图9-2所示 

1 的位置是所有者,这里/opt/hosts的所有者为root。
2 的位置是所属组,这里/opt/hosts的所属组为root。

如果想改变所有者,可以使用chown命令来实现,chown的用法如下。  

chown user1 file
这里的意思是把file的所有者改为user1(理解为过户)。例如,把/opt/hosts的所有者改
为bdqn,如下所示
[root@RHEL8 opt]# ls -lh
总用量 4.0K
-rw-r--r--. 1 root root 158 11月 30 11:29 hosts
[root@RHEL8 opt]# chown bdqn /opt/hosts 
[root@RHEL8 opt]# ls -lh /opt/hosts 
-rw-r--r--. 1 bdqn root 158 11月 30 11:29 /opt/hosts
[root@RHEL8 opt]# 

 chown也可以用于修改组,用法如下。

chown .group1 file 或 chown :group1 file
把file的所属组改成 group1,这里组前面有一个点或冒号。例如,把/opt/hosts 的所属
组改成users,如下所示。
[root@RHEL8 opt]# chown .users /opt/hosts 
[root@RHEL8 opt]# ls -lh
总用量 4.0K
-rw-r--r--. 1 bdqn users 158 11月 30 11:29 hosts
[root@RHEL8 opt]# 

需要注意的是,这里的点或冒号一定不要忘记了,否则就是修改所有者了。 

也可以同时修改所有者和所属组,用法为“chown user1.group1 file”。例如,
把/opt/hosts的所有者改成root。所属组改成bdqn,如下所示。
[root@RHEL8 opt]# chown root.bdqn /opt/hosts
[root@RHEL8 opt]# ls -lh
总用量 4.0K
-rw-r--r--. 1 root bdqn 158 11月 30 11:29 hosts
创建目录/opt/xx,把/opt/hosts拷贝到/opt/xx中,然后查看/opt/xx和 /opt/xx/hosts的
权限,如下所示。
[root@RHEL8 opt]# mkdir /opt/xx
[root@RHEL8 opt]# cp /opt/hosts /opt/xx
[root@RHEL8 opt]# ls -ld /opt/xx
drwxr-xr-x. 2 root root 19 11月 30 11:46 /opt/xx
[root@RHEL8 opt]# ls -l /opt/xx/hosts 
-rw-r--r--. 1 root root 158 11月 30 11:46 /opt/xx/hosts
[root@RHEL8 opt]# 

 可以看到,所有者都是root。

现在修改/opt/xx的所有者为bdqn,如下所示。

[root@RHEL8 opt]# chown bdqn /opt/xx/
[root@RHEL8 opt]# ls -ld /opt/xx
drwxr-xr-x. 2 bdqn root 19 11月 30 11:46 /opt/xx
[root@RHEL8 opt]# ls -l /opt/xx/hosts 
-rw-r--r--. 1 root root 158 11月 30 11:46 /opt/xx/hosts
[root@RHEL8 opt]# 
可以看到, /opt'xx的所有者变为了lduan,但是/opt/xx 中文件hosts的所有者并没有修改,这就意味着,当修改目录的所有者或所属组时,并不会影响目录中文件的属性。如果在改变目录属主/组时,想把里面内容的属主/组一起改掉,需要加上-R选项(表示递归),如下所示。
[root@RHEL8 opt]# chown -R bdqn /opt/xx/
[root@RHEL8 opt]# ls -ld /opt/xx
drwxr-xr-x. 2 bdqn root 19 11月 30 11:46 /opt/xx
[root@RHEL8 opt]# ls -l /opt/xx/hosts 
-rw-r--r--. 1 bdqn root 158 11月 30 11:46 /opt/xx/hosts
[root@RHEL8 opt]# 
可以看到,不仅把/opt/xx的属主改了,同时把/opt/xx里面内容的属主也改了。
如果想单独修改所属组,还可以使用chgrp命令,用法如下。
[root@RHEL8 opt]# ls -l /opt/hosts 
-rw-r--r--. 1 root bdqn 158 11月 30 11:29 /opt/hosts
[root@RHEL8 opt]# chgrp users /opt/hosts 
[root@RHEL8 opt]# ls -l
总用量 4
-rw-r--r--. 1 root users 158 11月 30 11:29 hosts
drwxr-xr-x. 2 bdqn root   19 11月 30 11:46 xx
[root@RHEL8 opt]# 

 当然,chgrp也可以使用-R选项(表示递归),大家自行练习即可。

再次把/opt/hosts的所有者和所属组改为root,如下所示。 

[root@RHEL8 opt]# chown root.root /opt/hosts 
[root@RHEL8 opt]# ls -l /opt/hosts 
-rw-r--r--. 1 root root 158 11月 30 11:29 /opt/hosts
[root@RHEL8 opt]# 

二.查看及修改权限 

对于一个文件来说,我们可以设置某用户对它具有什么操作权限,例如,是否可以看这个文件中的内容,是否可以往这个文件中写内容等。具体的权限包括以下三种。

(1). r:读权限

(2). w: 写权限

(3). x:  可执行权限

r 权限和 w 权限比较好理解,x 权限如何理解呢?

对于一个目录 dir1来说,如果用户 user1 对目录 dir1 有x权限,则 user1 是可以用 cd
命令进入到dir1 中的,反之则不能用 cd 命令进人到此目录

对于文件file1来说,如果用户user1对file1具有x权限,则用户可以把 file1当成一个命令
来执行,当然运行的结果就要看file1的内容写的是什么了
在 Linux系统中,文件或目录的权限是通过u、g、o授权的,看下面的例子,如图9-3所
示。

1 是所有者的权限,这里的权限为rw(读写权限)
2 是所属组的权限,这里的权限为r(只有读权限)
3 是其他人的权限,这里的权限为r(也是只有读权限)

查看bdqn所属组,命令如下

[root@RHEL8 ~]# groups bdqn
bdqn : bdqn
[root@RHEL8 ~]# 
bdqn 用户只属于 bdqn 组,所以 bdqn 用户对/opt/hosts文件只能使用 o 的权限,即只读
r。

修改权限使用的是 chmod 命令,用法如图9-4所示。 

设置 o 不允许读 /opt/hosts。 

[root@RHEL8 opt]# chmod o-r /opt/hosts 
[root@RHEL8 opt]# ls -l /opt/hosts 
-rw-r-----. 1 root root 158 11月 30 11:29 /opt/hosts
[root@RHEL8 opt]# 

 新开一个终端,使用bdqn账户登录,读取此文件。

[bdqn@RHEL8 ~]$ cat /opt/hosts 
cat: /opt/hosts: 权限不够
[bdqn@RHEL8 ~]$ 

 可以看到,bdqn 用户没有读取 /opt/hosts 的权限。

现在把所有者的写权限去掉,同时给 o 加上读和写权限。
[root@RHEL8 opt]# chmod u-w,o+rw /opt/hosts 
[root@RHEL8 opt]# ls -l /opt/hosts 
-r--r--rw-. 1 root root 158 11月 30 11:29 /opt/hosts
[root@RHEL8 opt]# 

 测试 bdqn 是否对此文件可读可写。

[bdqn@RHEL8 ~]$ cat /opt/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[bdqn@RHEL8 ~]$ echo 111 >> /opt/hosts 
[bdqn@RHEL8 ~]$ cat /opt/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
111
[bdqn@RHEL8 ~]$ 

可以看到,bdqn用户对 /opt/hosts/  已经具有读和写的权限了。

然后使用root用户来对 /opt/hosts/ 进行写测试。 

[root@RHEL8 opt]# echo 222 >> /opt/hosts 
[root@RHEL8 opt]# cat hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
111
222
[root@RHEL8 opt]# 
从权限来看,root对此文件是只读权限,应该是写不进去的,但是实际却写进去了,这是
因为很多时候这些权限设置对root是不生效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值