Linux 基础8 文件特殊权限

文件特殊权限分为三种

SetUID  SetGID  Sticky Bit

 

 SetUID 的功能

只有可执行的二进制程序才能设定SUID权限

命令执行者要对该程序拥有x权限

命令执行者在执行该程序时获得该程序文件的属主身份

SetUID权限只在程序执行的过程中有效,也就是说身份改变只在程序执行过程中有效。

 

passwd命令用于SetUID权限,所以普通用户可以通过此命令修改自己的密码,既更改shadow文件

-rwsr-xr-x 1 root root 47032 Feb 16  2014 /usr/bin/passwd*

cat命令没有SetUID权限,所以普通用户不能用它查看/etc/shadow文件内容

-rwxr-xr-x 1 root root 47904 Mar 24  2014 /bin/cat*

 

设定SetUID的方法

4代表SUID   这个权限就是正常权限的4,2,1

chmod 4775 文件名

chmod u+s文件名

取消SetUID的方法

chmod 755 文件名

chmod u-s 文件名

 

举一个设置时报错的例子:

touch test.sh

-rw-rw-r-- 1 Test Test 0 Apr  2 22:17 test.sh

chmod u+s test.sh

-rwSrw-r-- 1 sim3scm sim3scm 0 Apr  2 22:17 test.sh

之所以是大S是因为 源文件的权限是664没有可执行的x,所以设置SUID也不对。

 

SetGID的功能

只有可执行的二进制文件才能设置SGID权限

命令执行者要对该程序拥有x权限

命令执行者在执行程序的时候,组身份升级为该程序文件的属组

SetGID权限同样只在该程序执行过程中有效,也就是组身份改变只能在程序执行过程中有效。

[root@Liu-Centos ~]# ll /usr/bin/locate

-rwx--s--x. 1 root slocate 35612 8月  24 2010 /usr/bin/locate

 

[root@Liu-Centos ~]# ll /var/lib/mlocate/mlocate.db

-rw-r-----. 1 root slocate 1619014 3月  30 06:16 /var/lib/mlocate/mlocate.db

/usr/bin/locate 是可执行的二进制程序,可以赋予SGID权限

执行用户A 对/usr/bin/locate 命令有可执行权限

执行/usr/bin/locate 命令时,组身份会升级为slocate

而slocate组对mlocate.db数据库有r权限

所以普通用户可以用locate命令查询此数据库。

 

而且sgid还能针对目录起作用,suid只能针对文件起作用

普通用户必须对此目录,也就是有sgid权限的目录,拥有r和x权限,才能进入目录。

普通用户在此目录中的有效组会变成此目录的属组。

若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组。

 

设定Setgid

chmod 2755 文件名

chmod g+s 文件名

chmod 755 文件名

chmod g-s 文件名

 

[root@Liu-Centos tmp]# mkdir /tmp/Test

[root@Liu-Centos tmp]# chmod 2777 Test/让普通用户可以在这个目录里写东西

[liu@Liu-Centos Test]$ touch abcd

[liu@Liu-Centos Test]$ ls -l abcd

-rw-rw-r--. 1 liu root 0 4月   2 03:16 abcd

 

Sbit 的功能

sbit粘着位权限只对目录有效果

普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限。

如果没有sbit权限,普通用户因为有w权限,可以删掉该目录下所有文件。

包括其他用户建立的文件。

但是目录一旦设置了粘着位权限,除了root可以删除所有文件。

普通用户就算有w权限,也只能删除自己建立的文件。

不能删除其他用户建立的文件。

[root@Liu-Centos /]# ls -ld /tmp/

drwxrwxrwt. 4 root root 4096 4月   2 03:15 /tmp/谁都可以用,但是不能乱删除

 

chmod 1755 目录名

chmod o+t目录名

 

chmod 755目录名

chmod o-t目录名

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值