超级强大的【文件权限和归属管理】(下)

简介: 1 文件和目录的归属管理1.1 查看文件和目录的归属文件的归属(所有权):属主:拥有该文件或目录的用户账号。属组:拥有该文件或目录的组账号。


3、文件的特殊权限SUID、SGID、sticky bit


3.1 SUID

SUID(Set owner User ID up on execution) 是针对文件所设置的一个特殊权限。只作用于二进制文件中。

功能:设置了suid权限的程序文件,在用户执行该程序时,用户的权限是该程序文件属主的权限。

设置SUID的文件要求有如下几点:

  • 1)SUID只对可执行的二进制文件起作用,shell脚本设置后不生效。
  • 2)如果设置了其suid后,其属主的可以执行权限x会变成s(小写),如果是大写S那么说文件的属主没有执行权限,设置的SUID无效。
  • 3)SUID对目录设置无意义。

3.1.1 SUID设置方法

  • 字母设置方式:chmod u+s file
    取消SUID:chmod u-s file
  • 数字设置方式:chmod 4755 在普通三位数字权限位之前,用4代表添加的SUID位
    取消SUID:chmod 0755

3.1.2 SUID的作用演示

下面以passwd命令为例,来了解SUID的作用:

[root@localhost ceshi]# ls -l /usr/bin/passwd     //查看passwd程序文件的权限
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
复制代码


发现属主的执行位显示为s,而非x。这里的s就是suid权限。

passwd命令的属主为root。在我们修改密码时,passwd命令将编辑一些配置文件, 如/etc/passwd, /etc/shadow,这些文件只有root账户拥有权限打开或浏览。 普通用户执行passwd命令时,将会遇到权限拒绝的错误或者一些其他的错误。所以passwd命令设置SUID将root用户权限授权给普通用户,使普通用户可以使用passwd命令修改自己的密码。

示例01:

当passwd程序设置了suid权限时,普通用户可以使用passwd命令修改自己的密码。

[root@localhost ceshi]# ls -l /usr/bin/passwd    //查看passwd程序权限,带有suid权限
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@localhost ceshi]# su alice          //切换为普通用户alice
[alice@localhost ceshi]$ passwd           //使用passwd命令修改密码
更改用户 alice 的密码 。
为 alice 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。      #修改成功 
复制代码


示例02:

去掉passwd程序的suid权限后,普通用户无法使用passwd命令修改密码。

[root@localhost ceshi]# chmod u-s /usr/bin/passwd     //去掉suid权限
[root@localhost ceshi]# ll /usr/bin/passwd            //查看权限,不带有suid权限   
-rwxr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@localhost ceshi]# su alice         //切换为普通用户alice
[alice@localhost ceshi]$ passwd          //使用passwd命令修改密码
更改用户 alice 的密码 。
为 alice 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd: 鉴定令牌操作错误                 #操作失败
复制代码


注意:

  • passwd程序文件中的SUID权限为系统默认设置,非人为设置。
  • 实际项目中,出于安全考虑,一般不会人为设置或修改SUID权限。

3.2 SGID

SGID属性和SUID一样,只是SUID作用于属主,而SGID作用于属组。

SGID的功能:

  • SGID作用于二进制程序时,执行此程序的用户将拥有此程序的属组权限;
  • 作用于目录时,此目录下所有用户新建文件的默认属组是这个目录的属组。

同样在设置SGID的文件后,其属组权限位上的可执行权限x会变成s,如果变成了S说明属组没有执行权限,设置SGID无效。

SGID设置方法:

  • 字母设置方式:chmod g+s file/directory
    取消SGID:chmod g-s file/directory
  • 数字设置方式:chmod 2755 在普通三位数字权限位之前,用2代表添加的SUID位
    取消SGID:chmod 0755

3.3 sticky bit

这个权限的主要作用是在一个公共目录,每个用户都可以创建文件,删除自己的文件,但是不能删除别人的文件。这个权限只能用于目录,当某个目录拥有其Sticky权限 ,则其目录下的文件和目录只有root和其拥有者删除,其他用户不能删除,也就是说用户只能删除其自己本身属主的文件,不能删除其他属主的文件。

如果一个目录设置了其sticky权限,则其目录其他用户组的执行权限x会变成t(小写),它和SUID、SGID一样如果对应位是位上的可执行x变成了大写T ,那么表示其目录其他用户位上没有可执行权限,当然设置的Sticky就无效。

sticky设置方法:

  • 字母设置方式:chmod o+t directory
    取消SGID:chmod o-t directory
  • 数字设置方式:chmod 1755 在普通三位数字权限位之前,用1代表添加的sticky位
    取消SGID:chmod 0755

查看公共目录/tmp 的权限,有特殊权限sticky位:

[root@localhost ~]# ll -dl /tmp
 drwxrwxrwt. 20 root root 4096 3月   1 10:05 /tmp
复制代码


网络异常,图片无法展示
|


3.4 总结

  • 1)在给文件或目录设置特殊权限时,其文件对应位上必须拥有可执行权限,否则设置特殊权限无效。如果对应位上没有可执行权限,设置了特殊权限会在对应位上显示大写的字母,表示其特殊权限无效。
  • 2)SUID只能作用于可执行的二进制文件,对目录无效。SGID可作用于可执行二进制文件和目录。Sticky只能作用于目录,对文件无效。
  • 3)都是用chmod 进行授权。对于SUID和SGID都是+/-s,对于Sticky是+/-t;其中SUDI对应user位,SGID对应group位,Sticky对应other位。数字表示法,4表示SUID,2表示SGID,1表示Sticky。
相关文章
|
6月前
|
数据安全/隐私保护
43Linux - 用户/权限管理(修改文件所属组:chgrp)
43Linux - 用户/权限管理(修改文件所属组:chgrp)
29 0
|
9月前
|
Linux 数据安全/隐私保护
Linux权限 - 概念与管理 | 文件权限的修改与转让 【详解】
Linux权限 - 概念与管理 | 文件权限的修改与转让 【详解】
209 0
Linux权限 - 概念与管理 | 文件权限的修改与转让 【详解】
|
22天前
|
Linux
用户组管理命令
用户组管理命令。
7 1
|
6月前
|
数据安全/隐私保护
42Linux - 用户/权限管理(修改文件所有者:chown)
42Linux - 用户/权限管理(修改文件所有者:chown)
39 0
|
9月前
|
Linux
【Linux命令200例】chgrp更改文件或目录的组所有权
chgrp是Linux系统中的一个命令,用于更改文件或目录的组所有权。chgrp命令可以将指定文件或目录的组所有权更改为指定的组。
|
安全 Linux 数据安全/隐私保护
超级强大的【文件权限和归属管理】(上)
1 文件和目录的归属管理 1.1 查看文件和目录的归属 文件的归属(所有权): 属主:拥有该文件或目录的用户账号。 属组:拥有该文件或目录的组账号。
80 0
|
运维 Linux 数据安全/隐私保护
linux运维文件权限与归属
文件权限与归属linux命令学习
126 0
|
Linux
linux的基本权限和附加权限及归属
linux的基本权限和附加权限及归属
289 0
|
安全 Shell Linux
用户、组和文件权限解析_学习笔记
时间:2017.11.16 作者:李强 参考:man,info,magedu讲义 声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
908 0

热门文章

最新文章