我们有基于RH的Linux映像;为了将它们升级到我们产品的最新开发版本,我必须在其上“应用”一些“特殊档案”。
创建档案的人认为,在我们的基本映像中,某些权限是错误的。所以我们被告知要跑步
sudo chgrp -R nobody /whatever
我们做到了;后来,当我们的应用程序运行时,出现了难以理解的问题。
后来我发现:chgrp的调用将清除 / whatever中我们二进制文件中的setuid位信息。
实际的问题是:我们的某些二进制文件必须将setuid位置1才能正常运行。
长话短说:有没有办法在不杀死setuid的情况下运行“ chgrp”命令?
我只是在本地Ubuntu上运行了以下命令;导致相同的结果:
mkdir sticky
cd sticky/
touch blub
chmod 4755 blub
ls -al blub
->显示带有红色背景的文件名->是的,是setuid
chgrp -R myuser .
ls -al blub
->显示没有红色背景的文件名-> setuid消失了
setuid
位,而不是sticky
位。(2)setuid
当您这样做chgrp
或chown
将出现安全问题时,不清除该位。
4XXX
位称为setuid位(s
),不是粘性位。粘性就是t
一点,它的目的有些不同:en.wikipedia.org/wiki/Sticky_bit