set_uid:该权限针对二进制可执行文件,使文件在执行阶段具备文件全部者的权限; 通俗一点讲就是,普通用户想要访问一个没有其余用户可执行权限的目录时,暂时借助二进制文件的所属主权限去访问这个目录,若是没有s权限,就不能访问; 注意:普通用户要有这个二进制文件的可执行权限。若是没有,那也是不能访问的。 咱们系统中passwd命令就具备s权限。当普通用户执行passwd命令的时候,能够临时得到root权限,从而能够更改密码;node
系统修改密码命令:passwdui
系统密码文件:/etc/shadowspa
注意:这里全部者,所属组,其余用户都没有执行权限,可是root是超级用户,它具备至高无上的权限,因此root用户是能够修改密码的;按理说普通用户没有执行权限是没办法去修改密码的,可是咱们passwd命令具备s权限,普通用户在使用命令passwd时,能够临时获取到passwd所属主的root权限,因此能修改密码。blog
例子:使用普通用户查看/root/目录:qt
咱们怎样才能让普通用户yyl打开/root/目录呢? 解:咱们给ls命令加上一个s权限,让用户yyl临时拥有ls的全部者权限;例如:it
设置s权限:table
- 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_uid同样,它会使文件在执行阶段具备该文件所属组的权限。做用在目录上时,任务用户在此目录下建立的文件和目录都具备和该目录所属组相同的组。二进制
设置s权限:密码
- chmod g+s 二进制文件名或目录
- chmod g=rws 二进制文件名或目录
- chmod 2755 二进制文件名或目录
例子:做用在二进制文件上
例子:做用于目录上
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 目录
例子:
软连接:是创建一个独立的文件,当读取这个连接文件时,它会把读取的行为转发到该文件所连接的文件上。
比较源文件和软连接的大小,软链接的大小与源文件的长度有关
硬连接:当系统要读取一个文件时,会先读取inode信息,而后再根据inode的信息到块区域将数据取出来。而硬连接就是直接在创建一个inode连接到文件放置的块区域,即进行硬连接时,该文件的内容没有任何变化,只是增长了一个指向这个文件的inode,并不会额外占用磁盘空间。
注意:咱们建立的硬连接和源文件的inode同样,大小同样,真正存文件的是在inode号这个块里面
删除源文件,对硬连接没影响,对软链接有影响。
硬连接不能连接目录 软链接能够