(2)chown修改文件拥有者
修改文件拥有者:
chown 【参数】 用户名 文件名
选项:
-R 递归修改目录的拥有者
比如将IP2.log文件的拥有者改为用户Gino,必须在root权限下修改,可以切换为root之后:
再修改文件拥有者:
(3)chgrp修改文件或目录的所属组
修改文件或目录所属组:
chgrp 【参数】 用户组名 文件名
选项:
-R 递归修改文件或目录的所属组
同样也是要有root权限才能修改,如将IP2.log文件的所属组改为Gino:
假如想同时修改拥有者和所属组,依旧要在root权限下:
chown 拥有者:所属组 文件名
例如,想将IP2.log的拥有者和所属组都改为root,那么可以这样改:
(4)umask查看或修改文件掩码
新创建一个文件,访问权限按理来说,应该是777,但是却发现新创建的目录的权限是755:
这是因为创建文件或目录的时候还要受到umask的影响,假设默认权限是mask,实际创建出来的文件权限是mask & ~umask。
查看文件掩码:
umask
查看到系统的umask为0022:
只需要关心后3位,实际创建出来的文件权限是mask & ~umask。凡是在umask中为1的位,都要在起始权限中去掉:
修改文件掩码:
umask 八进制
将文件掩码由022修改为333,发现创建的新目录的权限也与333对应:
但是如果退出后,重新登录,重新创建新目录,就会发现,修改过的掩码失效了,又变成了022。
这是因为掩码设置只在本次登录有效,退出登录就失效了。
(5)目录的权限
①可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
②可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。
③可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
那么问题来了。只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限,这不矛盾吗?
(6)粘滞位
在root的根目录下,有一个tmp文件夹,这个文件夹下存放的是临时文件,用户在保存文件之前,文件都存放在tmp文件夹中,这个文件夹下存放用户的临时文件,可以看到它的权限有个t:
这个文件夹对拥有者和所属组的权限都是rwx,对other的权限是rwt。这个t是什么属性?和r、w、x有什么区别?
先来看下面的例子,root用户在根目录下创建了一个文件夹test,并在这个文件夹中创建了2个文件test1和test2,然后又root用户切换为delia用户,此时发现delia竟然可以删掉test中的文件:
这怎么能忍呢?我创建的文件,怎么能够被别人随随便便删掉呢? test目录对other有w和x权限,一旦有w权限,那么也就是other可以对它进行创建文件和删除文件操作。但是不希望一个用户创建的文件被别的用户或删除,那怎么办呢?
在这种场景下,就需要粘滞位,当目录被设置了粘滞位以后,即使用户对该目录有写权限,但是不能删除该目录中其他用户的文件,只有文件的拥有者和root用户才可以删除。这就达到了各个用户可以在目录中读、写、修改、删除文件,但是不能随意删除其他用户文件的目的。
设置粘滞位:
发现设置完粘滞位后,其他用户就不能删除该用户创建的文件了。
因此,当一个目录被设置为"粘滞位"(chmod +t),则该目录下的文件只能由
(1)超级管理员删除
(2)该目录的所有者删除
(3)该文件的所有者删除