Linux文件权限T占位的作用,Linux 文件权限 强制位和冒险位详解

Linux中,文件权限除了读、写、执行之外,还有强制位与冒险位的特别权限

在Linux中文件的权限如下(在Linux中目录也是一个文件):

强制/冒险  |  用户  |  组    |  其它

===========================================

sst        rwx        rwx      rwx

这里就讲解一下强制位和冒险位

强制位有:setuid和setgid,主要用于文件及目录

冒险位有:sticky,只用于目录,多数是共享目录

setuid(在u的x位置上使用一个s)只能对文件进行设置

对文件作用:

默认情况下,用户执行一个指令,会以该用户的身份来运行进程。当一个文件设置了SUID后,所有用户执行这个文件时都是以这个用户的所有者的权限来执行。即可以让对此文件没有执行权限的用户执行此文件。

setgid(在g的x位置上使用一个s)只能对目录设置

对目录作用:

默认情况下,用户建立的文件夹属于用户当前所在的组,但是设置了SGID后,表示在此目录中,任何人建立的文件,都会属于目录所属的组,但是用户还是属于创建的用户。

sticky(o的x位置上使用一个t)只能对目录设置

对目录作用:

默认情况下,如果一个目录o上有w和x权限,则任何人可以在此目录中建立与删除文件。一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。其他用户则不能。

注意:直接在文件上面设置冒险位是没有作用的,冒险位要创建在目录上面

强制位和冒险位的表现方式:

强制位与冒险位添加在执行权限的位置上,强制位使用S和s来表示,冒险位使用T和t来表示。如果该位置上原已有执行权限,则强制位与冒险位以小写字母的方式表示。否则,以大写字母表示。即:

S:表示该位没有x位        s: 表示该位有x位

T:表示该位没有x位        t: 表示该位有x位

Ps:如果在强制位中S为大写,则表示相应的执行权限位并未被设置,这是一种没有用处的suid设置可以忽略它的存在。

设置强制位和冒险位

1:通过+,-设置强制位和冒险位

set uid: # chmod u+s filename

# chmod u-s filename          对文件取消强制位

set gid: # chmod g+s filename

sticky:  # chmod o+t dir

2:通过数字设置强制位和冒险位,放在读写执行的三位数字前来指定

4(set uid)  2(set gid)  1(sticky)

# chmod 4---      文件        设置setuid

# chmod 2---      目录        设置setgid

# chmod 1---      目录        设置sticky

# chmod 6---      目录/文件    设置GUID,UID

注意:chmod命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但并不会对所设置的权限组合做什么检查。因此一个文件具有执行权限不一定程序或脚本。

SUID例子:

默认情况下所有用户都可以使用ping此命令,但查看ping命令所在的文件时会发现,这个文件所属的用户和组均属于root,按理说只有root用户可以执行该命令,但事实上会发现所有的用户都可以使用该命令。因为ping命令所在文件的权限x的位置有一个s

# ping -c 4 www.linuxidc.com

如果去掉suid就会发现其他用户就使用不了改命令了

# chmod u-s /bin/ping

# su - linuxidc

$ ping -c 4 www.linuxidc.com

ping: icmp open socket: Operation not permitted

上面的例子中,指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。也说明了如果某个命令没有s权限则普通用户不可以使用

SGID例子:

一个小组共同开发一个项目,所有的项目文件都存放在一个目录下面,对这个目录设置SGID,可以让所有的用户新建的文件都属于同一个群组。然后对目录设置好权限,这样大家都可以看到其他用户建立的文件。

STICKY例子:

如一个小组共同开发一个项目,在一个目录上设了sticky位后,所有的小组成员都可以在这个目录下创建文件,但只能删除自己创建的文件(root除外),这就对目录下的用户文件启到了保护的作用。

其他:

查找suid文件

# ls -l | grep '^...s'

查找suid 和guid document

# ls -l |grep '^...s..s'

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值