首页 百科知识 强制位和冒险位

强制位和冒险位

时间:2022-10-10 百科知识 版权反馈
【摘要】:强制位与冒险位添加在执行权限的位置上:如果该位置上原已有执行权限,则强制位与冒险位以小写字母的方式表示;否则,以大写字母表示。强制位set uid与set gid在u和g的x位置上各采用一个s,冒险位使用一个t。指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。

4.5.1 强制位和冒险位

除了读写执行权限以外,Linux ext2、ext3文件系统还支持强制位(setuid和setgid)与冒险位(sticky)的特别权限。针对u,g,o分别有set uid,set gid一级sticky。

强制位与冒险位添加在执行权限的位置上:如果该位置上原已有执行权限,则强制位与冒险位以小写字母的方式表示;否则,以大写字母表示。强制位set uid与set gid在u和g的x位置上各采用一个s,冒险位(sticky)使用一个t。

suid意味着如果某个用户对属于自己的程序设置了这种属性,那么其他普通用户在执行这程序时也会具有其文件拥有者相应权限。于是,如果超级用户(root)的某个程序设置了这样的权限,那么其他普通用户在执行它的期间也同样具有超级用户的权限。同样的原则也适用于sguid,想要执行程序的用户将具有该文件所属用户组的权限。

默认情况下,用户执行一个指令,会以该用户的身份来运行进程。指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。

这里有一个很好的例子,你管理着几个大型的数据库系统,而对它们进行备份需要有系统管理权限。你写了几个脚本,并设置了它们的suid,这样你指定的一些用户只要执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,它们可以完成数据库备份及其他管理任务,而且在这些脚本运行结束之后,它们就又回复到他们作为普通用户的权限。

另一个例子是/bin/passwd文件,要读写/etc/passwd文件需要超级用户权限,但一般用户也需要随时可以改变自己的密码,所以/bin/passwd命令就设置了suid,当用户改自己密码的时侯就拥有了超级用户权限。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈