第六章 Linux文件系统权限
6.1 文件权限
chown (更改所属用户用户)
chown xixi aaa 将aaa所属用户改为xixi
chown hehe.hehe aaa(将文件和组一起更改)
==chown hehe:hehe aaa
chown : xixi aaa (将用户的所属组进行更改)
chgrp (更改所属组)
chgrp xixi aaa 将aaa所属组该为xixi
6.2 设置文件和目录的一般权限
1.权限是在文件中标识
-rw-r-- r-- . 1 haha xixi 0 Mar 9 20:39 aa
每三个字符为一组标记权限 :默认权限的显示顺序为rwx
u(所属用户)=hehe=rw (读和写的权限)
g(所属组)=xixi=r (读取权限)
o(其他用户)=r
**./+**扩展权限标识符
2.权限描述方式
字符形式(默认标识方式):rw-r–r--
数值形式:r=4 w=2 x=1 6 4 4(用8421码标记)
3.文件的默认权限值(权限掩码值)
文本文件最高权限值为 666 rw- rw- rw-
目录文件最高权限值为 777
033 — -wx -wx
633 rw- r-- r-- 644
umask(查看权限掩码值/权限过滤符)
[root@daiyu ~]# umask
0022
0(特殊权限)022(一般权限)
umask 033 (暂时过滤)
777
033
744
666 rw- rw- rw-
033 — -wx -wx
633 rw- r-- r - -
4.chmod(更改权限)
字符形式修改:
chmod u=rw,g+w,o-r (去掉r权限) /home/1
注:+/=都可以
chmod ugo=rw /home/1(都修改成一样的)
==chmod a =rw /home/1
chmod ugo -r /home/1(都去掉r权限)
== chmod a -r /home/1
数值形式修改:
chmod 644 1
5.文本文件目录文件权限字符的含义
文本文件:
r 查看文件内容 cat tac more less tail head vim grep
w 编写文件内容 nano vim > (echo 123 >file) cat> file<<EOF
x 运行该文件中的内容
目录文件:
r ls列出显示文件
w 创建文件
x 打开目录 cd /
6.权限匹配规则(只是一般权限的情况下)
判断当前用户是否是目标文件的所属用户,如果是直接匹配所属用户的权限,不是则匹配是否是文件所属组的用户,是,直接匹配组权限
都不是则直接匹配其他用户的权限。
./文件名可以执行该文件里的内容
**注:**如果让目录有读或写的权限必须要有打开文件的权限,对于一个目录文件对当前用户有写权限,则该用户就可以删除该目录下任意用户创建的文件;对于一个目录文件对当前用户
6.3 文件和目录的特殊权限
1.u+s
所属文件符禁锢位; 对可执行文件设置有意义;
作用:对可执行文件进程的所属用户取决于文件自身的用户而不是用户的发起者。
[root@daiyu pub]# chmod u+s /root/pub
[root@daiyu pub]# ll -d
drwsrwxr-x. 2 root root 6 Mar 16 03:40 .
若只有特殊权限则:
[root@daiyu pub]# chmod u-x /root/pub
[root@daiyu pub]# ll -d
drwSrwxr-x. 2 root root 6 Mar 16 03:40 .(特殊权限会变为大写)
作为普通用户通过passwd修改密码默认对于/etc/shadow文件没有任何权限。
passwd 可执行文件设置了u+s的强制位,后期通过普通用户执行该可执行文件,该执行文件进程的所属用户是文件自身的用户root,所以可以通过root身份更改/etc/shasow文件内容。
2.g+s
可执行文件所属组的禁锢位,作用让进程文件的所属组不再属于发起者的身份,而是程序文件自身的所属组(紧固所属用户)
可以对目录文件设置:对目录文件的所属组禁锢,则后期无论是哪个用户创建的文件所属组默认和当前目录的所属组一样。
3.o+t
冒险位,对目录文件设置有意义
用户在该目录下只能删除自己的文件不能删除别人的
[root@daiyu pub]# chmod g+s .
[root@daiyu pub]# chmod o+t .
[root@daiyu pub]# ll -d
drwsrwsr-t. 2 root root 6 Mar 16 03:40 .
用数值表示:u+s=4 g+s=2 o+t=1
chmod 7755 文件名/目录名
4.ps -aux 查看进程文件
扩展权限
1.getfacl(查看文件的访问列表)
[root@daiyu pub]# getfacl l1
# file: l1
# owner: root
# group: root
user::rw-
group::r--
other::r--
2.setfacl (插入权限列表)
-m 对指定用户添加扩展权限
[root@daiyu pub]# setfacl -m u:redhat:rwx l1
[root@daiyu pub]# getfacl l1
# file: l1
# owner: root
# group: root
user::rw-
user:redhat:rwx
group::r--
mask::rwx #标识扩展权限
other::r--
[root@daiyu pub]# ll l1
-rw-rwxr--+ 1 root root 0 Mar 21 06:32 l1
#若后面有+则是扩展权限
-x删除指定用户的扩展权限
[root@daiyu pub]# setfacl -x u:redhat: l1
[root@daiyu pub]# getfacl l1
# file: l1
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
-b清空所有扩展权限
[root@daiyu pub]# setfacl -b l1
[root@daiyu pub]# getfacl l1
# file: l1
# owner: root
# group: root
user::rw-
group::r--
other::r--
练习题
2.将file文件的所属用户改为hehe,组为xixi,要求hehe对该文件有读写权限,hehe组用户没有任何权限,其他用户只有读权限
[root@daiyu ~]# cd pub
[root@daiyu pub]# chown hehe:xixi file
[root@daiyu pub]# ll file
-rw-r--r--. 1 hehe xixi 0 Mar 21 07:04 file
[root@daiyu pub]# setfacl -m g:hehe:- file
[root@daiyu pub]# getfacl file
# file: file
# owner: hehe
# group: xixi
user::rw-
group::r--
group:hehe:---
mask::r--
other::r--
考试题
1.创建协作目录
创建具有以下特征的协作目录 /home/managers:
/home/managers 的组用权是 sysmgrs。
目录应当可被 sysmgrs 的成员读取,写入和访问。但任何其他用户不具这些权限。 (当然,root用户有权访问系统上的所有文件和目录)。
/home/managers 中创建的文件自动将组所有权设置到 sysmgrs 组 。
mkdir /home/managers
chgrp sysmgrs /home/managers/
ll /home/managers/ -d
drwxr-xr-x. 2 root sysmgrs 6 Nov 22 11:12 /home/managers/
chmod g+w,o-r,o-x /home/managers/
chmod g+s /home/managers/
2.将文件 /etc/fstab 复制到 /var/tmp/fstab 。配置 /var/tmp/fstab 的权限以满足如下条件:
文件 /var/tmp/fstab 自 root 用户所有
文件 /var/tmp/fstab 属于组 root
文件 /var/tmp/fstab 应不能被任何人执行
用户 natasha 能够读取和写入 /var/tmp/fstab
用户 harry 无法写入或读取 /var/tmp/fstab
所有其他用户(当前或未来)能够读取 /var/tmp/fstab
#cp /etc/fstab /var/tmp/fstab
#ll /var/tmp/fstab
-rw-r–r--. 1 root root 615 Nov 22 11:26 /var/tmp/fstab
#chmod a-x /var/tmp/fstab
#useradd natasha
#useradd harry
#setfacl -m u:natasha:rw /var/tmp/fstab
#setfacl -m u:harry:- /var/tmp/fstab
#chmod o+r /var/tmp/fstab