Linux学习总结:特殊权限SUID,SGID,SBIT

本文介绍了Linux系统中的SUID、SGID和SBIT三种特殊权限,详细阐述了它们的工作原理和应用场景。SUID允许执行者在运行时获得文件所有者的权限,常用于如`passwd`命令这样的安全操作。SGID则使得执行者在执行期间具有文件所属组的权限,适用于目录,使得新建文件继承目录的用户组。SBIT(sticky bit)仅对目录有效,保护目录内文件不被其他用户删除,常应用于`/tmp`目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、SUID

二、SGID

三、SBIT


Linux中除了rwx权限外,另外还有三种特殊权限:SUID、SGID、SBIT

假如本来在该位上有x, 则这些特别标志 (SUID, SGID,SBIT)显示为小写字母 (s,s,t)。否则显示为大写字母 (S,S,T) 。在数字权限上与rwx类似,对应三位数的二进制,有权限的位置上为1,无权限的位置上为0。SUID,SGID,SBIT分别表示4,2,1。并且需要在最前面增加一位。看个例子就懂了,/usr/bin/passwd的权限:

一、SUID

s出现在文件所有者的x权限上

1)SUID只能用于二进制可执行文件,对目录无效

2)执行者若具有该文件的x权限,则将具有文件所有者的权限

3)权限只在文件执行时有效,执行完毕不再拥有所有者权限

s权限的具体含义是,当某个文件的拥有者执行权限位是s的话,其他用户执行这个二进制时,在执行期间,用户获得文件拥有者的权限。需要注意的是,执行程序的用户本身要对这个程序有x权限。如果一个属于root:root的文件的权限是-rws------,那么让一般用户来执行还是没有权限的。必须改成-rws-----x才可。

使用SUID的场景比较经典的有“有限制地对文件进行读写”。比如有一个属于root的文件file,我希望其他用户可以在一定限制下对其进行读写。显然不能开放rw给他们。那么我可以这么做,将这个文件设置成只有root可读可写,然后写一个二进制程序(程序所有者得是root),在程序中做出读写的控制,而后把这个程序的所属者执行位设置为s。这样其他用户可以通过这个程序来对文件读写,做到了“有限制的读写”。这种做法有点类似于面向对象编程中的私有变量。不

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值