Linux文件特殊权限

转载 2015年07月07日 12:31:31

SUID属性

passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码。但是保存用户密码的/etc/shadow文件的权限是644,
也就是说只有文件的所有者root用户可以写入,那为什么其他用户也可以修改自己的密码呢?这是由于passwd这个可执行文件有SUID属性。

[root@srv ~]# ll /etc/shadow
-rw-r--r--. 1 root root 1966 4月  16 14:29 /etc/passwd

SUID属性只能运用在可执行文件上,当用户执行该执行文件时,会临时拥有该文件所有者的权限。passwd命令启用了SUID功能,
所以一般用户在使用passwd命令修改密码时,会临时拥有其所有者root用户的权限,这样一般用户就可以将自己的密码写入/etc/shadow文件。
在使用ls -lll命令浏览文件时,如果可执行文件的所有者权限的第三位是一个小写的s就表明该执行文件拥有SUID属性。

[root@srv ~]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 22960 Jul 17  2006 /usr/bin/passwd

如果在浏览文件时,发现所有者权限的第三位是一个大写的S则表明该文件的SUID属性无效,比如将SUID属性给一个没有执行权限的文件。

SGID属性

SGIDSUID不同,SGID属性可以应用在目录或可执行文件上。当SGID属性应用在目录上时,该目录中所有建立的文件或子目录的拥有组都会是该目录的拥有组。
比如/charles目录的拥有组是charles,当/charles目录拥有SGID属性时,任何用户在该目录中建立的文件或子目录的拥有组都会是charles;
当SGID属性应用在可执行文件上时,其他用户在使用该执行文件时就会临时拥有该执行文件拥有组的权限。比如/sbin/apachectl文件的拥有组是httpd,
/sbin/apachectl文件有SGID属性时,任何用户在执行该文件时都会临时拥有用户组httpd的权限。在使用ls -lll命令浏览文件或目录时,
如果拥有组权限的第三位是一个小写的“s”就表明该执行文件或目录拥有SGID属性。

[root@srv tmp]# ll
total 4
drwxr-sr-x 2 root root 4096 Feb 15 22:25 test4
-r-xr-sr-x 1 root root  6144 Feb 15 22:25 test6

如果在浏览文件时,发现拥有组权限的第三位是一个大写的“S”则表明该文件的SGID属性无效,比如将SGID属性给一个没有执行权限的文件时就会看到这个效果。

-rw-rwSr--. 1 wubo wubo    0 77 09:55 xxx

Sticky属性

Sticky属性只能应用于目录之上,当目录拥有Sticky属性时,所有在该目录中的文件或子目录,无论是什么权限,只有文件或子目录的所有者和root用户才能删除之。
比如当用户test8在·/charles·目录中建立一个文件夹并将该文件夹的权限配置为777,当·/charles·目录拥有Sticky属性时,只有root和test8用户可以将该文件删除。
在使用ls -lll命令浏览目录时,如果其他用户权限的第三位是一个小写的t, 就表明该执行文件或目录拥有Sticky属性。

[root@srv tmp]# ll
total 4
drwxrwxrwt 2 root root 4096 Feb 15 22:34 test4

配置SUID/SGID/Sticky属性

配置普通权限时可以使用字符或数字,SUID、SGID、Sticky也是一样。使用字符时s表示SUID和SGID、t表示Sticky;4表示SUID、2表示SGID、1表示Sticky。
在配置这些属性时还是使用chmod命令。

  • 当前目录目前情况
[root@srv tmp]# ll
total 52
drwxr-xr-x 2 root root 4096 Feb 15 22:47 test2
drwxr-xr-x 2 root root 4096 Feb 15 22:47 test3
drwxr-xr-x 2 root root 4096 Feb 15 22:46 test4
drwxr-xr-x 2 root root 4096 Feb 15 22:46 test5
-r-xr-xr-x 1 root root 5120 Feb 15 22:46 test6
-r-xr-xr-x 1 root root 3072 Feb 15 22:50 test7
drwxr-xr-x 2 root root 4096 Feb 15 22:56 test1
-r-xr-xr-x 1 root root 6144 Feb 15 22:48 test8
-r-xr-xr-x 1 root root 9216 Feb 15 22:51 test9
  • 为文件test6增加SUID属性。
[root@srv tmp]# chmod u+s test6      
  • 为文件test8增加SUID属性。在使用数字表示时,原来的三位不变,只是增加了一个千位专门用于SUID、SGID、Sticky属性。下面的4就是SUID属性。
[root@srv tmp]# chmod 4555 test8     
  • 为目录test2增加SGID属性。
[root@srv tmp]# chmod g+s test2/        
  • 为目录test3增加SGID属性。
[root@srv tmp]# chmod 2755 test3/    
  • 为文件test7增加SUID和SGID属性,6=4(SUID)+2(SGID)。
[root@srv tmp]# chmod 6555 test7
  • 为目录test4增加Sticky属性。
[root@srv tmp]# chmod o+t test4/     
  • 为目录test5增加Sticky属性。
[root@srv tmp]# chmod 1755 test5/   
  • 为目录test1增加SGID和Sticky属性,3=2(SGID)+1(Sticky)。
[root@srv tmp]# chmod 3755 test1/
  • 执行上述更改命令后当前目录的情况。
[root@srv tmp]# ll
total 52
drwxr-sr-x 2 root root 4096 Feb 15 22:47 test2
drwxr-sr-x 2 root root 4096 Feb 15 22:47 test3
drwxr-xr-t 2 root root 4096 Feb 15 22:46 test4
drwxr-xr-t 2 root root 4096 Feb 15 22:46 test5
-r-sr-xr-x 1 root root 5120 Feb 15 22:46 test6
-r-sr-sr-x 1 root root 3072 Feb 15 22:50 test7
drwxr-sr-t 2 root root 4096 Feb 15 22:56 test1
-r-sr-xr-x 1 root root 6144 Feb 15 22:48 test8
-r-xr-xr-x 1 root root 9216 Feb 15 22:51 test9
  • 取消目录test1的SGID属性。
[root@srv tmp]# chmod g-s test1/        

在使用umask命令显示当前的权限掩码时,千位的“0”就是表示SUID、SGID、Sticky属性。
提示:在有些资料上SUID、SGID被翻译为“强制位”,Sticky被翻译为“冒险位”。

更多信息参考:linux特殊权限位:sgid,suid,sticky_bit

相关文章推荐

Linux文件特殊权限SGID-UID详解

  • 2014年08月13日 18:29
  • 345KB
  • 下载

文件特殊权限: SUID, SGID, SBIT [Linux]

文件特殊权限: SUID, SGID, SBIT 我们前面一直提到关於文件的重要权限,那就是 rwx 这三个读、写、运行的权限。看看先: [root@www ~]# ls ...

Linux文件特殊权限SUID,SGID,SBIT

f

Linux学习之——文件特殊权限(一)

文件特殊权限包括:* SetUID * SetGID * Sticky BIT 事实上,这三种,尤其是前两种权限都是特别不安全的权限。它们存在的意义就是系统需要借助它们来完成一些特殊的功能。如果用户乱...

Linux文件的特殊权限:SUID,SGID,SBIT

SUID 具有该权限的文件的所有者的x标志会被s标志取代。 该权限仅对二进制可执行文件有效。 执行该文件的用户(当然这个用户必须具有对该文件的可执行权限)将会暂时获得该文件所有者的权限,这种效果仅在...
  • hws912
  • hws912
  • 2014年03月06日 10:02
  • 754

Linux文件特殊权限:SUID,SGID,SBIT(黏滞位)的简单介绍

进入文章正文之前,我么先来看两个文件的属性 之前我们所了解的文件权限只有r、w、x,那上面我们看到的/tmp中“others”的x权限变成了t,以及/usr/bin/passwd中“user”的...

Linux文件特殊权限——SetUID、SetGID、Sticky BIT

对于 SetUID、SetGID、Sticky BIT 这三个文件特殊权限,分别介绍如下: 1. SetUID 权限 只有可以执行的二进制程序才能设定SetUID权限,并且命令执行者要对该程序拥有x(...

Linux学习---文件特殊权限(SUID)

SetUID的功能 1.    只有可执行的二进制程序或者shell程序才能设定SUID权限 2.    命令执行者要对该程序(命令)拥有x(执行)权限 3.    命令执行者在执行该程序时获得该程序...
  • cin_ie
  • cin_ie
  • 2016年08月26日 12:46
  • 915

Linux文件的特殊权限位SUID、SGID作用及编程设置/读取

起 最近在搞android里面的su(不是为了做root提权,那是别的部门干的事)。学习了一些新东西,挺有意思。 以下文章假定你的android设备已经被root了,有获取root权限的能力,或者...

Linux上文件的特殊权限SUID,SGID,SBIT详解

文件的特殊权限SGID,SUID..SBIT        大家都知道文件和目录的权限最常见的有三个.可读(r)..可写(w)..可执行(x)..它们的级别分别是4..2..1..我们有时也会发现有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux文件特殊权限
举报原因:
原因补充:

(最多只允许输入30个字)