set uid
这个权限是二进制可执行文件的,它使文件在可执行阶段具有文件所有者的权限。比如 passwd命令,它是用来修改密码的,使用命令 ls -l /usr/bin/passwd查看passwd命令的权限,rws里的s就代表拥有此权限。
本身/etc/shadow密码文件是不支持更改的,但root拥有至高的权限,他有更改权限的权限。普通用户执行passwd命令时,临时拥有root的 权限。 我们可以给 ls命令加sed_uid权限 命令为: chmod u+s /usr/bin/ls ,也可以使用命令:chmod u=rws /usr/bin/ls ,但这样的话就会没有 x权限,可以使用命令 chmod u+x /usr/bin/ls 加上 x权限。我们也可以给目录设置该权限但这样做没有意义。set gid
这个权限可以作用在二进制可执行文件上,文件在执行阶段具有文件所属组的权限,和set uid一样,使用命令 chmod g+s /usr/bin/ls 可以更改ls命令 的set gid权限。也可以给目录设置这个权限,任何用户在设置了这个权限的目录下创建的文件都具有和该目录所属的组相同的组。
sticky bit 可以理解为防删除位
文件是否可以被一个用户删除,主要取决于这个文件所在目录是否对这个用户具有写权限。如果没有,则这个目录下的所有文件都不能删除,也不能添加新的文件。如果洗完用户能够添加文件但不能删除这个目录下其他用户的文件,就可以对父目录增加这个权限。设置这个权限后,就算用户对目录有些的权限,也不能删除其他用户的权限。/tmp/ 就拥有这个权限。
软链接是建立一个独立的文件,单独去这个链接文件时,它会把读取的行为转发到该文件所链接的文件上。例如:现在有一个文件 a ,我们做一个软链接文件 b,b指向了 a。当读取 b时,b会把读取的动作转到 a,这样就读取了 a文件。当我们删除文件 a时,链接文件 b不会删除;但再次读取 文件 b时,会提示无法打开文件。
而我们删除文件 b,a则不会受影响。 并且做软链接时使用绝对路径。
软链接的命令格式:ln -s 来源文件 目的文件
硬链接
当系统要读取文件时,会先读inode信息,然后再根据inode中的信息到块区域将数据取出来。而硬链接是直接再建立一个inode链接到文件放置的块区域,就是说进行硬链接时这个文件的内容不会有任何变化,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间。
硬链接有两个限制:
1、不能跨文件系统,因为不同的文件系统有不同的inode table;
2、不能链接目录。
硬链接的命令格式:ln 来源文件 目的文件