0

3.4Linux下SUID/SGID/SBIT 权限配置

Posted by 撒得一地 on 2015年12月10日 in Linux教程

之前介绍过SUID与SGID的功能,那么如何配置文件使成为具有SUID与SGID的权限?这就要涉及到Linux下数字更改权限的方法。数字型态更改权限的方式为三个数字的组合,而SUID/SGID/SBIT 权限配置则是在这三个数字之前加上一个数字,最前面的那个数字就代表这几个权限:

4 为 SUID
2 为 SGID
1 为 SBIT

假设要将一个文件权限改为『-rwsr-xr-x』时,由于 s 在使用者权限中,所以是 SUID ,因此, 在原先的 755 之前还要加上 4 ,
也就是:『 chmod 4755 filename 』来配置。

下面这个例子为了方便使用同一个文件来配置,不过要注意的是,SUID是用在文件上而SBIT是用在目录上。

[root@lmode ~]# cd /tmp
[root@lmode tmp]# touch ppsszz
[root@lmode tmp]# chmod 4755 ppsszz ; ls -l ppsszz
-rwsr-xr-x 1 root root 0 Dec  9 23:15 ppsszz

[root@lmode tmp]# chmod 6755 ppsszz ; ls -l ppsszz
-rwsr-sr-x 1 root root 0 Dec  9 23:15 ppsszz

[root@lmode tmp]# chmod 1755 ppsszz ; ls -l ppsszz
-rwxr-xr-t 1 root root 0 Dec  9 23:15 ppsszz

[root@lmode tmp]# chmod 7666 ppsszz ; ls -l ppsszz
-rwSrwSrwT 1 root root 0 Dec  9 23:15 ppsszz

最后一个例子就要特别小心。怎么会出现大写的 S 与 T 呢?不都是小写的吗? 因为 s 与 t 都是取代 x 这个权限的,但是你有没有发现,我们是下达 7666 。也就是说, user, group 以及 others 都没有 x 这个可运行的标志( 因为 666 ),所以,这个 S, T 代表的就是空的。怎么说? SUID 是表示『该文件在运行的时候,具有文件拥有者的权限』,但是文件 拥有者都无法运行了,哪里来的权限给其他人使用?当然就是空的。

而除了数字法之外,你也可以透过符号法来处理。其中 SUID 为 u+s ,而 SGID 为 g+s ,SBIT 则是 o+t 。来看看如下的范例:

#配置权限为-rws--x--x
[root@lmode tmp]# chmod u=rwxs,go=x ppsszz ; ls -l ppsszz
-rws--x--x 1 root root 0 Dec  9 23:15 ppsszz

[root@lmode tmp]# chmod g+s,o+t ppsszz ; ls -l ppsszz
-rws--s--t 1 root root 0 Dec  9 23:15 ppsszz

标签:

上一篇:

下一篇:

相关推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

8 + 9 = ?

网站地图|XML地图

Copyright © 2015-2017 技术拉近你我! All rights reserved.
闽ICP备15015576号-1,版权所有©psz.