Linux目录和文件中的常用命令(五)

摘要:2.18 特殊权限set_uid

          2.19 特殊权限set_gid

          2.20 特殊权限stick_bit

          2.21 软链接文件

          2.22 硬连接文件

一 特殊权限set_uid

    1.set_uid权限

        作用在所有者上,如/usr/bin/passwd 文件的权限-rwsr-xr-x,其中的s就表示set_uid权限

Linux目录和文件中的常用命令(五)_第1张图片

    2.set_uid作用

        保证非所有者用户在操作带有s权限的命令时临时拥有该命令所有者的身份;给一个文件设置s权限时前提需要保证此文件是一个二进制文件,而且是一个可执行的文件

    3. 如何给二进制的命令文件授予s权限

        1)先将用户切换到非root用户,此时可以看到访问root目录的权限不够

Linux目录和文件中的常用命令(五)_第2张图片

        2)将用户切换回root用户,给二进制文件授予s权限

Linux目录和文件中的常用命令(五)_第3张图片

        3)再将用户切换到非root用户,可以发现此用户可以临时访问/root/目录

Linux目录和文件中的常用命令(五)_第4张图片

        4)当使用# chmod u=rws [文件]  来修改[文件]权限时,会使这个文件缺失x权限,同时查看这个文件的权限时会发现其权限是用大写S表示的

Linux目录和文件中的常用命令(五)_第5张图片

    4. 目录授予s权限

            给目录设置s权限无意义

二 特殊权限set_gid

    1.给普通文件加上set_gid权限

        作用在所属组用户权限上,作用在所属组上的s权限,其对应的组内用户也拥有s权限,作用跟set_uid一样

        #chmod  g+s [文件]  //

Linux目录和文件中的常用命令(五)_第6张图片

    2.给目录所属组加s权限

        # chmod g+s [目录]

正常情况下,root用户去创建一个文件或目录时,它的所有者和所属组都为root,但当给一个目录设置了set_gid后,再在这个目录下创建子文件或子目录时,这个子文件或子目录的所属组会跟其父级保持一致,也就是跟刚才创建set_gid这个权限的目录保持一致

三 特殊权限stick_bit

    1.stick_bit 

        可以理解为防删除位,文件是否可以被某用户删除,注意取决于该文件所在的目录是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能删除,同时也不能添加新的文件。如果希望用户能够添加文件但不能删除该目录下其他用户的文件,则可以对父目录增加该权限。设置该权限后,即使用户对目录具有写权限,也不能删除其他用户的文件

四 软链接文件

    1.什么是软链接

        类似windows中的快捷方式,在软链接的文件里面存了另外一个文件的路径或者是目录的路径

    2.软链接作用

        1)节省空间,避免复制文件占用过多空间

        2)创建软链接链接文件# ln -s [源文件] [目标文件]


        3)创建软链接链接目录## ln -s [源目录] [目标文件]

        做软链接尽量使用绝对目录,不要使用相对目录,否则当软链接文件或源文件更改路径后,会导致软链接失效

        4)当某个文件占用磁盘空间过大,但又不能直接移动该文件到其他磁盘时,可以先将该文件内容复制到其他磁盘新的文件中,再清空原来文件内容,同时将原来文件软链接到之前接受复制内容的文件上,这时当有新的数据写入该文件时,会直接写入新的文件中

五 硬链接

    1.简介

       具有相同inode号文件的数量如下图,对目录来说有几个子文件就有几个文件iNode号相同,因此硬链接不支持对目录做硬链接,只支持对文件做硬链接

Linux目录和文件中的常用命令(五)_第7张图片

    2.创建硬链接

        # ln [源文件][目标文件]

Linux目录和文件中的常用命令(五)_第8张图片

        从上图可以看出,硬链接的iNode号与源文件相同,软链接iNode号与源文件不同

        如果删除源文件呢?

Linux目录和文件中的常用命令(五)_第9张图片

删除源文件对硬链接无影响,软链接则失效。另外,硬链接与源文件是互为源文件的。

iNode号存的是文件磁盘中存储位置、大小等信息,

硬链接不允许跨分区

你可能感兴趣的:(Linux目录和文件中的常用命令(五))