如何向组添加权限以匹配用户权限?

如何向组添加权限以匹配用户权限?

有人弄乱了 /usr/local/ 权限,导致其他人无法访问它。现在我想将用户权限复制到组权限,因为 chmod g+rx -R /usr/local 不安全。该怎么做?

使用linux(ubuntu 10.04)。

答案1

您可以复制权限:

chmod -R g=u /usr/local

这会将用户权限复制到组权限。

答案2

cd /usr/local
chmod -R g-rwx .
find . -perm -u+r -exec chmod g+r {} \;
find . -perm -u+w -exec chmod g+w {} \;
find . -perm -u+x -exec chmod g+x {} \;

这首先会清除所有文件的组权限。然后它应该向下搜索,依次检查每个文件的三个用户权限位(r、w、x)。对于每个权限,当它找到已设置该位的文件时(忽略其其他用户权限位),它会为该文件设置等效的组位。

强烈建议您先在随机子目录中测试一下,最好在其中放一些您自己制作的极端文件。但在我的类似测试中,它是有效的。

答案3

我也在网上找到了这个基于 perl 的解决方案。

find . | perl -ne 'chomp; $a = (stat $_)[2] & 07777; $a = ($a & 07707) | (($a >> 3) & 070); chmod($a, $_)'

    chmod g=u

我认为其他地方提到的更好

相关内容