linux赋权限命令(linux设置可执行权限)
linux的隐藏权限
chattr +i /sec/Classified
使文件不能被修改与删除,对passwd、shadow、group、gshadow等重要文件可设置该属性,-i移除属性。
chattr +a /sec/Classified
使文件不能被修改与删除,但可以追加内容,对重要的日志文件可以设置该属性,-a移除属性。
lsattr /sec/Classified #显示隐藏属性
chattr +i 示例
chattr +a 示例
linux的三种特殊权限
1、SBIT(Sticky Bit):只对目录有效,一个目录如果有SBIT权限,那么该目录下的文件,只有该文件的拥有者和root才能删除,如/tmp目录,它的权限是:
tmp目录权限
t出现在了其他人的x权限位置,表示该目录有SBIT权限。该目录其他人具有rw权限,理论上该目录下的文件任何人都可以删除。但由于SBIT权限的存在,所以该目录的文件只有拥有者和root才能删除或移动。以tmp目录下的file1文件为例:
file1文件权限
file1文件的拥有者是sindy,那么该文件只能被root和sindy这两个用户删除。
参考命令:
chmod o+t /share #为share目录赋于SBIT权限,在该目录下用户只能删除自己创建的文件chmod o-t /share #取消SBIT权限
2、SUID(Set UID):只对二进制文件有效,一个文件如果有SUID权限,那么其他人在执行该文件时,可以临时获取到该文件的拥有者权限。以/usr/bin/passwd文件为例:
passwd文件权限
s出现在了拥有者的x权限位置,表示该文件有SUID权限,且其他人对该文件有x权限。由于SUID权限的存在,所以其他人在执行passwd命令时,会临时获取到root(拥有者是root)权限,进而可以对/etc/shadow文件进行写入操作。这也是为什么普通用户也能用passwd命令修改自己密码的缘故。
参考命令:
chmod u+s /script/setdns #为文件setdns文件赋于SUID权限chmod u-s /script/setdns #取消SUID权限
3、SGID(Set GID):对二进制文件和目录都有效,一个文件如果有SGID权限,那么其他人在执行该文件时,可以临时获取到该文件所属组的权限。一个目录如果有SGID权限,那么在该目录下创建的文件、目录会继承父目录的所属组信息。以根下的一个work目录为例:
work目录权限
s出现在了目录所属组的x权限位置,表示该目录有SGID权限。由于SGID权限的存在,任何用户在该目录下创建的文件、目录的所属组都会是sindy组。
参考命令:
chmod g+s /work #为work目录赋于SGID权限chmod g-s /work #取消SGID权限