Linux 权限 - setuid、setgid、sticky bit - 用一个命令删除所有

Posted

技术标签:

【中文标题】Linux 权限 - setuid、setgid、sticky bit - 用一个命令删除所有【英文标题】:Linux Permissions - setuid, setgid, sticky bit - remove all with one command 【发布时间】:2017-02-03 13:38:34 【问题描述】:

我目前正在学习 Linux Essentials 课程,最近我遇到了 setuid、setgid 和 Sticky bit 权限。

我尝试制作一个实际示例并运行命令以将它们应用于我创建的文件和目录。

我注意到删除它们的数字命令是“chmod 0775”,我想,如果同时应用这三个命令,如果我运行数字命令来删除它们会发生什么。我认为它会按顺序删除它们,但在文件的情况下,它会一次删除所有它们。

然后我尝试了目录。结果在那里不同。仅删除了最后应用的权限(即粘滞位)。我再次运行命令并没有做任何事情。没有删除任何剩余的权限(setuid、setgid)。

为什么会这样?

谢谢!

【问题讨论】:

【参考方案1】:

man chmod 中的快速搜索显示您需要在前面附加一个额外的0=。比如这样:

chmod 00775 target  

或者像这样:

chmod =775 target 

如果你想递归删除所有文件的setuid、setgid和sticky权限,你可以使用这个命令:

chmod -R 00775 .,.*

【讨论】:

【参考方案2】:

文件和目录的粘滞位略有不同... 例如,要从名为“Testy”的目录中删除棒位,您可以输入:

sudo chmod g-s Testy/

请注意,键入以下内容将不起作用: sudo chmod 777 暴躁 下面的教程提供了很好的示例和解释,我的建议是多次练习这些示例中的一些,然后最终一切都会变得有意义。理解的关键(无论如何,在我看来)是这里涉及设置权限/位等的八进制系统,一旦你明白一切都到位了。

这里是教程链接:Access Control / Sticky Bit Tutorial

【讨论】:

以上是关于Linux 权限 - setuid、setgid、sticky bit - 用一个命令删除所有的主要内容,如果未能解决你的问题,请参考以下文章

setuid setgid stick bit 特殊权限 粘滞位

Linux三个比较特殊的权限

关于文件目录等的特殊权限setuid, setgid , sticky

在 linux 中调用 setgid 和 setuid 后,我无法访问属于某个组的文件

Linux理解setuid()setgid()和sticky位

Linux常用命令之--强制位与冒险位