Linux UGO和ACL权限管理(2)

而对于t,又叫粘着位,仅对目录生效。在具有t位的目录下,如果用户在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除。/tmp目录则是最好的例子,每个应用都可以在tmp目录下新建删除自己的文件,但却不能删除其应用建立的文件。

那么如何修改文件的sst权限呢?还是使用chmod命令,由第一节我们知道可以用十进制数值设置UGO对文件的访问权限,同样对于特殊权限位,也可以使用。只需在原来的数值前面加上sst的十进制数值。有时候我们还会看到大写的SST,那是因为可执行位为0,所以显示为大写,例如

linuxidc@linuxidc:~$ ls -l test
-rw-rw-r-- 1 linuxidc xlzh 0  3月 15 15:52 test
/*为文件增加sst,仅做演示,实际上t为对文件不生效*/
linuxidc@linuxidc:
~$ chmod 7777 test
/*为文件加上了suid, sgid, Sticky Bit位*/
linuxidc@linuxidc:
~$ ls -l test
-rwsrwsrwt 1 linuxidc xlzh 0  3月 15 15:52 test
/*去除文件的可执行位*/
linuxidc@linuxidc:
~$ chmod 7666 test
/*显示为大写*/
linuxidc@linuxidc:
~$ ls -l test
-rwSrwSrwT 1 linuxidc xlzh 0  3月 15 15:52 test
linuxidc@linuxidc:
~$

1.3 掩码

先做一个实验,在linux下分别建立一个目录和一个文件,查看其权限位

linuxidc@linuxidc:~$ mkdir dir
linuxidc@linuxidc:
~$ touch test linuxidc@linuxidc:~$ ls -ld dir
drwxrwxr
-x 2 linuxidc xlzh 4096  3月 15 15:57 dir
linuxidc@linuxidc:
~$ ls -l test
-rw-rw-r-- 1 linuxidc xlzh 0  3月 15 15:57 test
linuxidc@linuxidc:
~$

可以看到,新建的目录全显示775,新建的文件是664,为什么新建的文件和目录权限不是777呢?就是由于掩码的存在,当用户新建一个目录的时候,是777与掩码做与操作,当用户新建一个文件的时候,是666与掩码做与操作。可以用umask命令查看当前系统掩码

linuxidc@linuxidc:~$ umask 0002 linuxidc@linuxidc:~$

新建目录是777与007做掩码,结果正是775,新建文件是666与002做掩码,结果正是664。

当然,还可以通过umask命令修改系统掩码,新建文件的权限位也跟着改变。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15384.html