linux文件目录管理SUID,SGID,SBIT(二)

一、Set UID

SUID仅可应用在二进制程序上,不能应用在shell脚本上。

- SUID权限仅对二进制程序有效
- 执行者对于该程序需要具有x的可执行权限
- 本权限仅在执行该程序的过程中有效
- 执行者将具有该程序拥有者(owner)的权限

例:

#查看/etc/shadow文件权限
[root@localhost ~] ll /etc/shadow
----------. 1 root root 1250 3月  29 00:09 /etc/shadow
#文件权限为全无,也就是说只有root才有对该文件修改写入
#那么为什么一般用户输入passwd也可以修改自己的密码?
#再来查看一下passwd的执行文件/usr/bin/passwd
[root@localhost ~] ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27856 8月   9 2019 /usr/bin/passwd

[root@localhost ~] chown 0755 /usr/bin/passwd
[root@localhost ~] ll /usr/bin/passwd 
-rwxr-xr-x. 1 755 root 27856 8月   9 2019 /usr/bin/passwd
#修改该文件权限后

[root@localhost ~] su chen
[chen@localhost root]$ passwd
	更改用户 chen 的密码 。
	为 chen 更改 STRESS 密码。
	(当前)UNIX 密码:
	新的 密码:
	无效的密码: 密码少于 8 个字符
	新的 密码:
	重新输入新的 密码:
	passwd: 鉴定令牌操作错误
#再切换到其他用户修改自己密码则显示鉴定令牌错误,表示为无权限

1.其他用户在修改自己密码时对此文件有执行权限
2.该文件的拥有者是root
3.当其他用户在修改自己密码时会暂时获得root的权限
4.所以/etc/shadow就会被用户所修改

二、Set GID

当s标志在文件拥有者的x想为SUID,而当s标志在用户的x位置时则为SGID

1. 对于文件来说

  • SGID对二进制程序有用
  • 程序执行者对于该程序需要由x的执行权限
  • 执行者在执行的过程中获得该程序用户组的支持
[root@localhost ~] ll /usr/bin/locate
-rwx--s--x. 1 root slocate 40520 4月  11 2018 /usr/bin/locate
#与SUID几乎相同,当其他用户执行该文件时,会暂时获得该文件属组的权限

2.对于目录来说

  • 用户若对于此目录具有r与x的权限时,该用户能够进入此目录
  • 用户在此目录下的有效用户组将会变成该目录的用户组
  • 用途:若用户在此目录下具有w的权限(可以新建文件),则用户建立的新文件,该信文件的用户组与此目录的用户组相同
[root@localhost media] chmod 2777 wenjian
[root@localhost media] ll -d wenjian/
drwxrwsrwx. 2 root root 6 4月  14 19:03 wenjian/
[root@localhost media] su chen
[chen@localhost media]$ cd wenjian/
[chen@localhost wenjian]$ mkdir chen
[chen@localhost wenjian]$ ll
总用量 0
drwxrwsr-x. 2 chen root 6 4月  14 19:10 chen
#从以上可以看出将/media/wenjian目录赋予SGID后
#其他用户在此目录创建的文件属组都是属于root

三、Sticky Bit

  • 只针对目录有效
  • 当用户对于此目录具有w、x权限,即具有写入的权限
  • 当用户在该目录下建立文件或目录时,仅有自己与root才有权力删除文件
[root@localhost wenjian] chmod 1777 /media/wenjian
[root@localhost wenjian] ll -d /media/wenjian
drwxrwxrwt. 2 root root 19 4月  14 19:19 /media/wenjian
[root@localhost wenjian] touch 1.txt
[root@localhost wenjian] chmod 777 1.txt 
[root@localhost wenjian] su chen
[chen@localhost wenjian]$ exit
exit
[chen@localhost wenjian]$ rm 1.txt 
rm: 无法删除"1.txt": 不允许的操作
#上述实验可以看出,在被赋予了SBIT的/media/wenjian的目录下
#只能对自己的文件或目录进行修改
#不能对其他人的目录进行修改

四、SUID、SGID、SBIT的权限设置

在chmod设置权限时的三个数字前再加一位数字

  • 4为SUID
  • 2为SGID
  • 1为SBIT

例:

chmod g-s [filename]
#删除SGID
chmod u-s [filename]
#删除SUID
chmod o-t [filename]
#删除SBIT
chmod 7777 [filename]
#设置为满权限

如果在设置权限时把该文件的x执行权限去掉后会出现大写的S或T,这样没有执行权限的话怎么给其他人使用,所以忽略就好

原创文章 20 获赞 7 访问量 713

猜你喜欢

转载自blog.csdn.net/adsedfewf/article/details/105506717