SUID属性

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

[root@srv ~]# ll /etc/shadow

-r-------- 1 root root 1128 Feb 15 14:33 /etc/shadow

SUID属性只能运用在可执行文件上,当用户执行该执行文件时,会临时拥有该执行文件所有者的权限。passwd命令启用了SUID功能,所以一般用户在使用passwd命令修改密码时,会临时拥有了passwd命令所有者root用户的权限,这样一般用户才可以将自己的密码写入/etc/shadow文件。在使用“ls -l”或“ll”命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的“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属性

SGID于SUID不同,SGID属性可以应用在目录或可执行文件上。当SGID属性应用在目录上时,该目录中所有建立的文件或子目录的拥有组都会是该目录的拥有组。比如“/charles”目录的拥有组是charles,当“/charles”目录拥有SGID属性时,任何用户在该目录中建立的文件或子目录的拥有组都会时charles;当SGID属性应用在可执行文件上时,其他用户在使用该执行文件时就会临时拥有该执行文件拥有组的权限。比如/sbin/apachectl文件的拥有组是httpd,当/sbin/apachectl文件有SGID属性时,任何用户在执行该文件时都会临时拥有用户组httpd的权限。在使用“ls -l”或“ll”命令浏览文件或目录时,如果拥有组权限的第三位是一个小写的“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属性给一个没有执行权限的文件。

Sticky属性

Sticky属性只能应用在目录,当目录拥有Sticky属性所有在该目录中的文件或子目录无论是什么权限只有文件或子目录所有者和root用户能删除。比如当用户test8在“/charles”目录中建立一个文件并将该文件权限配置为777,当/charles目录拥有Sticky属性时,只有root和test8用户可以将该文件删除。在使用“ls -l”或“ll”命令浏览目录时,如果其他用户权限的第三位是一个小写的“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命令。

l  当前目录目前情况。

[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

l  为文件test8增加SUID属性。在使用数字表示时,原来的三位不变,只是增加了一个千位专门用于SUID、SGID、Sticky属性。下面的4就是SUID属性。

[root@srv tmp]# chmod 4555 test8

l  为目录test2增加SGID属性。

[root@srv tmp]# chmod g+s test2/

l  为目录test3增加SGID属性。

[root@srv tmp]# chmod 2755 test3/

l  #为文件test7增加SUID和SGID属性,6=4(SUID)+2(SGID)。

[root@srv tmp]# chmod 6555 test7

l  为目录test4增加Sticky属性。

[root@srv tmp]# chmod o+t test4/

l  为目录test5增加Sticky属性。

[root@srv tmp]# chmod 1755 test5/

l  为目录test1增加SGID和Sticky属性,3=2(SGID)+1(Sticky)。

[root@srv tmp]# chmod 3755 test1/

l  执行上述更改命令后当前目录的情况。

[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

l  取消目录test1的SGID属性。

[root@srv tmp]# chmod g-s test1/

在使用umask命令显示当前的权限掩码时,千位的“0”就是表示SUID、SGID、Sticky属性。

提示:在有些资料上SUID、SGID被翻译为“强制位”,Sticky被翻译为“冒险位”。

关于SUID、SGID、Sticky的更多相关文章

  1. SUID,SGID,Sticky Bit详解(转)

    SUID属性 passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码.但是保存用户密码的/etc/shadow文件的权限是400,也就是说只有文件的所有者root用户可以写入, ...

  2. SUID ,SGID ,Sticky

    SUID passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者: chmod u+s FILE chmod u-s FILE 如果FILE本身原来就有执行权限, ...

  3. linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit

    一 cd : . 代表当前目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表[目前用户身份]所在的自家目录 与cd效果相同 ~account 代表 account 这个用户的自家家目录 二m ...

  4. linux中suid/sgid/sticky及扩展属性(attr)

    suid只适用于命令文件.(如/usr/bin/passwd) 当命令文件上有suid权限时,则操作用户的权限变成属主权限.命令文件上无suid权限则操作用户的权限不变. 查看suid权限: [roo ...

  5. linux文件权限位SUID,SGID,sticky的设置理解

    SUID含义:文件的该位被设置为1,在该文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来           执行这个文件,他都有文件所有者的特权,如果所有者是root的话,那么执行人就有超 ...

  6. 特殊权限:SUID,SGID,Sticky

    特殊权限passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者:    chmod u+s FILE    chmod u-s FILE        如果FIL ...

  7. Linux 特殊用户权限 suid,sgid, sticky

    每个进程会维护有如下6个ID: 真实身份 : real UID, readl GID --> 登录 shell 使用的身份 有效身份 : effective UID, effective GID ...

  8. 彻底了解 suid, sgid ,sticky权限

    sticky: 粘性的, 如 : sticky tape: 粘胶带 /tmp, /var/tmp: 位 sticky: 表示: 第一, 任何用户都可以在该目录下创建文件(编辑自己的文件),第二, 但是 ...

  9. 【Linux】文件特殊权限 SUID/SGID/Sticky Bit

    linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...

  10. chmod 4777? 文件特殊权限 SUID SGID StickyBit

    故事引入 今天碰到了一条指令, test 怎么在777前还有一位,颠覆了我的认知啊,这时候必须翻鸟哥神书了,找到一个链接<7.4.3 文件特殊权限:SUID/SGID/Sticky Bit> ...

随机推荐

  1. java 多态奇怪现象,子类还没有构造完成就开始干活了,谁来帮我解释?

    java代码: package test.extend; public class Base { public Base(){ System.out.println("基类构造") ...

  2. mysql出错:Access denied for user 'root'@'localhost' (using password: YES)

    网站链接mysql数据库的时候,连接不上,并报出错误:Access denied for user 'root'@'localhost' (using password:YES) 这是个相当恼火的问题 ...

  3. 当子查询碰上NULL

    情景: 现在有如图两个表,boy和girl,对应着Boy和Girl两个bean,有共同字段id.name,另外boy还有个外键grilfriend(指向girl的id) 现在要查询所有的Boy,如果有 ...

  4. 玩转Docker之安装篇(二)

    按理说,安装软件最好是按照官方文档进行,但由于国内网络的局限性,使我们不得不搭梯子,但终究太麻烦.鉴于此情况,我推荐方案一,利用某公司的加速站点来安装,而且是傻瓜式的,非常方便. 方案一: 在linu ...

  5. 类似 Dribbble 下载按钮的 SVG 弹性动画进度条

    Codrops 发布了一个如何创建一个基于弹性效果的 SVG 加载进度条教程,基于 SVG 和 TweenMax 实现.按钮开始的时候是一个带有箭头的图标,一旦它被点击,动画成一个有趣的小金属丝和一个 ...

  6. js、jquery获取当前url中各个参数

    首先,先把获取各参数的方式再写一遍,相信大家都耳熟能详,就写几个常用的吧. 以此网址https://i.cnblogs.com/EditPosts.aspx?opt=1为例: 1. var url=w ...

  7. go语言 安装版 Windows7安装截图

    这个比较简单的 一路next. 查看:解压版安装go. //http://www.cnblogs.com/osfipin/

  8. sql搜索数据库中具有某列的表

    在接口中明明有某个节点,但在数据库中却找不到,为此本人写了一个sql,以供快速查找. Select distinct syscolumns.name,sysobjects.name from sysc ...

  9. Eclipse 扩展点常量ID

    eclipse 扩展点常量ID 列表如下: Name    ID ------------------------------------------------- Category File     ...

  10. windows.open()、close()方法详解

    windows.open()方法详解:         window.open(URL,name,features,replace)用于载入指定的URL到新的或已存在的窗口中,并返回代表新窗口的Win ...