特殊权限set_uid、set_gid、stick_bit、软链接、 硬链接

特殊权限set_uid

set_uid:该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限; 通俗一点讲就是,普通用户想要访问一个没有其他用户可执行权限的目录时,暂时借助二进制文件的所属主权限去访问这个目录,如果没有s权限,就不能访问; 注意:普通用户要有这个二进制文件的可执行权限。如果没有,那也是不能访问的。 我们系统中passwd命令就具有s权限。当普通用户执行passwd命令的时候,可以临时获得root权限,从而可以更改密码;

系统修改密码命令:passwd

系统密码文件:/etc/shadow

注意:这里所有者,所属组,其他用户都没有执行权限,但是root是超级用户,它具有至高无上的权限,所以root用户是可以修改密码的;按理说普通用户没有执行权限是没办法去修改密码的,但是我们passwd命令具有s权限,普通用户在使用命令passwd时,可以临时获取到passwd所属主的root权限,所以能修改密码。

例子:使用普通用户查看/root/目录:

我们怎样才能让普通用户yyl打开/root/目录呢? 解:我们给ls命令加上一个s权限,让用户yyl临时拥有ls的所有者权限;例如:

设置s权限:

扫描二维码关注公众号,回复: 1075359 查看本文章
  • chmod u+s 二进制文件名
  • chmod u=rws 二进制文件名
  • chmod 4755 二进制文件名 这个4是这样得出来的:
    suid = 4
    sgid = 2
    stick_bit = 1

取消s权限:

  • chmod u-s
  • chmod u=rwx
  • chmod 755

特殊权限set_gid

set_gid:该权限可以作用在二进制可执行文件上,也可以作用在目录上。当作用在文件上时,其功能和set_uid一样,它会使文件在执行阶段具有该文件所属组的权限。作用在目录上时,任务用户在此目录下创建的文件和目录都具有和该目录所属组相同的组。

设置s权限:

  • chmod g+s 二进制文件名或目录
  • chmod g=rws 二进制文件名或目录
  • chmod 2755 二进制文件名或目录

例子:作用在二进制文件上

例子:作用于目录上

特殊权限stick_bit

sticky_bit:防删除位。一个目录下的文件能不能被删除,不是取决于文件本身的属组属组还有其他权限, 而是在于这个文件所在目录的权限是否可读可写可执行,如果目录可写,那就意味着我们可以删除目录下的任何文件。当一个目录的权限为其他人可读可写可执行的时候,那么其他用户都可以删除这个目录下的文件,包括root文件,为了防止文件被其他用户删除,我们给这这个目录增加一种特殊权限:sticky,防删除位,要用root用户操作。这样一个用户就不能删除另一个用户创建的文件了。只有root和创建文件本人才能够删除。

/tmp/ 这个目录有这个权限,哪个用户创建的文件或文件夹都只有它本身和root用户有权限删除和更改

(谁的文件谁做主)

更详细参考:http://blog.51cto.com/walkerqt/1354117 

特殊权限的数值表示
三种特殊权限可以用单独的一位8进制数值表示

SUID、SGID和sticky-bit的数值表示

SUID SGID sticky 二进制 八进制 说明
- - - 000 0 不设置特殊权限
- - t 001 1 只设置sticky
- s - 010 2 只设置SGID
- s t 011 3 只设置SGID和sticky
s - - 100 4 只设置SUID
s - t 101 5 只设置SUID和sticky
s s - 110 6 只设置SUID和SGID
s s t 111 7 设置三种特殊权限

设置t权限:

  • chmod o+t 目录
  • chmod o=rwt 目录
  • chmod 1755 目录

例子:

软链接文件

软链接:是建立一个独立的文件,当读取这个链接文件时,它会把读取的行为转发到该文件所链接的文件上。

  • 软链接 相当于一个快捷方式
  • 软链接的大小取决于软链接源文件的路径长短
  • 软链接支持文件和目录
  • 软链接的源文件不能被删除,如果删除源文件,软链接文件会失效;软链接删除,源文件不受影响。 创建软链接格式:
  • 尽量使用绝对路径来做软链接 ln -s 源文件 目标文件

比较源文件和软链接的大小,软连接的大小与源文件的长度有关

  • du -sh 文件 \查看文件大小
  • df -h \查看磁盘情况

硬连接文件

硬链接:当系统要读取一个文件时,会先读取inode信息,然后再根据inode的信息到块区域将数据取出来。而硬链接就是直接在建立一个inode链接到文件放置的块区域,即进行硬链接时,该文件的内容没有任何变化,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间。

  • 硬链接不能夸文件系统,不同的文件系统有不同的inode table;
  • 硬链接不能链接目录; 格式: ln 来源文件 目标文件

注意:我们创建的硬链接和源文件的inode一样,大小一样,真正存文件的是在inode号这个块里面

删除源文件,对硬链接没影响,对软连接有影响。

硬链接不能链接目录 软连接可以

猜你喜欢

转载自my.oschina.net/u/3791387/blog/1786715