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

有一个搞砸了/ usr / local / permissions,这样别人就无法访问它。 现在我想重复用户权限来分组权限,因为chmod g + rx -R / usr / local是不安全的。 这应该怎么做?

使用Linux(Ubuntu 10.04)。

您可以复制权限:

chmod -R g=u /usr/local 

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

 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 {} \; 

这首先清除所有文件的组权限。 然后search下来,依次检查每个文件的三个用户权限位(r,w,x)。 对于每个权限,当它find一个具有该位设置的文件(不考虑其他用户权限位)时,它将为该文件设置相应的组位。

强烈build议你先在一个随机的子目录中testing这个文件,最好是用你自己创build的一些特殊文件。 但它在我的可比testing中起作用。

我也发现这个基于Perl的解决scheme。

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

但是

  chmod g=u 

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