UNIX为了对文件进行保护,把所有用户划分为三种类型,分别是:文件属主(user)、同组用户(group)以及其他用户(other)。同时,对每种类型的用户所拥有的权限又分为:读(r)、写(w)和执行(x)三种,这也是最常见的三种,也没什么好说的,众所皆知!
(注:目录的权限位和文件有所不同。目录的读权限位意味着可以列出其中的内容。写权限位意味着可以在该目录中创建文件,如果不希望其他用户在你的目录中创建文件,可以取消相应的写权限位。执行权限位则意味着搜索和访问该目录)
现在,我们来了解Linux下一些其他不太常见的权限。
set uid权限(SUID):只能用在二进制文件(binary file)上,用在目录上无效,表示程序在执行的过程中能够暂时拥有该文件所有者的权限。
添加set uid权限的命令: chmod u+s 文件名
set gid权限(SGID):当二进制件(binary file)被设置了此权限,则无论使用者是谁,在执行该文件时,他的有效群组将变为该文件的群组所有人。当目录被设置了此权限,就表明该目录下所创建的文件都是为目录所属组。
添加set gid权限的命令 : chmod g+s 目录名
Sticky Bit权限(t权限):目前只针对目录有效,对文件已经没效果了。它对目录的作用是:在具有SBit的目录下,使用者如果在该目录下具有w以及x的权限,则他在该目录下所创建的文件或目录,就只有他与root用户才有权力删除。即:在这样的权限内容下,任何人都可以在这样的目录下新增或修改文件,但只有该文件/目录创建者和root用户能够删除自己的目录或文件。换句话说,当甲这个用户对于A目录下是拥有group或other的项目,并且拥有w的权限,这表示甲对该目录内任何人建立的目录或文件进行“删除、更名以及搬移”等动作。但如果在A目录上设置了Sticky bit的权限时,则甲只能针对自己建立的文件或目录进行删除、更名、移动等操作。 添加t权限的命令: chmod o+t 目录名
我们都知道用数字来更改权限,且这些数字形态方式为三个数字的组合,如果在这三个数字前再加上一个数字的话,最前面的数字就代表上面的这几种属性了。
注: 4为SUID、 2为SGID、 1为Sticky bit。
例如:chmod 4755 testfile (-rwsr-xr-x)
chmod 6755 testfile (-rwsr-sr-x)
chmod 1755 testfile (-rwxr-xr-t)
(注:之所以会有s与t的权限,是为了让一般使用者在执行某些程式的时候,能够暂时拥有该程式拥有者的权限。)
P.S. 查询整个系统里所有的SUID/SGID的文件使用命令:
find / -perm +6000 查询所有的SUID、SGID的文件
find / -perm -4000 查询所有的SUID文件
find / -perm -2000 查询所有的SGID文件
Linux权限的认识
转载请注明出处:服务器评测 » Linux权限的认识