我有一个目录(我们将调用/files
)与~1300个子目录,每个子目录包含更多子目录和文件。
/files
中90%的顶级目录属于apache:apache
,其余目录属于root:root
。我需要一切属于apache:apache
。
我认为如果我在整个批次上做一个递归chown
它将是非常极端的,所以我想知道是否有一种更有效的方法来递归地将root:root
目录的所有权更改为{ {1}}。
如果apache:apache
可以以相同的方式在这些目录上完成,则可获得奖励。
答案 0 :(得分:0)
使用linux find命令可以帮助那里:
find /files -user root -group root -type d \
-exec chmod something {} \; -exec chown apache.apache {} \;
有关可行的原因的详细信息,请http://www.explainshell.com/explain?cmd=find+%2Ffiles+-user+root+-group+root+-type+d+-exec+foo+ \%3B
答案 1 :(得分:0)
您的递归chown可能已经完成,但您可以使用它:
find . -type d \( ! -user apache -o ! -group apache \) -print0 | xargs -0 chown apache:apache
更改具有错误权限的目录:
find . -type d ! -perm 755 -print0 | xargs -0 chmod 755