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. opencart二次开发小记

    在controller中如果要调用model中数据或说方法可以这样写 $this->load->model('catalog/information');//model中的informat ...

  2. heX——基于 HTML5 和 Node.JS 开发桌面应用

    heX 是网易有道团队的一个开源项目,允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案.heX 是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁 ...

  3. 经典!HTML5 Canvas 模拟可撕裂布料效果

    这是一个模拟可撕裂布料效果的 HTML5 Canvas 应用演示,效果逼真.你会看到,借助 Canvas 的强大绘图和动画功能,只需很少的代码就能实现让您屏息凝神的效果. 温馨提示:为保证最佳的效果, ...

  4. Chance – 功能强大的 JavaScript 随机数生成类库

    Chance 是一个基于 JavaScript 的随机数工具类.可以生成随机数字,名称,地址,域名,邮箱,时间等等,几乎网站中使用的任何形式的内容都能够生成.这个随机数工具可以帮助减少单调的测试数据编 ...

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

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

  6. 转使用chrome命令行:disable-web-security 实现浏览器跨域

    注意chrome 48 版本后此方法就不能用了 推荐一个新方式来实现本地跨域调试线上资源,搜索chrome插件 Allow-Control-Allow-Origin: *.https://chrome ...

  7. mac安装Aws cli失败

    OS X EI 10.11 报错信息如下: Found existing installation: six 1.4.1 DEPRECATION: Uninstalling a distutils i ...

  8. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q13-Q15)

    Question 13 You are designing a SharePoint 2010 site. You need to design the site to meet all the fo ...

  9. 当SD卡拔出时,返回首页,栈中的activity都要清除,只留下首页的activity

    目标:当SD卡拔出时,返回首页,栈中的activity都要清楚,只留下首页的activity 我在清单中注册了一个静态广播: <receiver android:name="com.p ...

  10. 单独编译Android系统模块并替换进系统

    例如,我修改了frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java文件,进入frame ...