如何安全地递归更改所有者:组?

如何安全地递归更改所有者:组?

我正在将一个用户的主目录复制到用户 #2 的主目录,因此需要将内容的所有权转让给新用户。运行:

find /home/user2 -user user1 -exec chown user2 '{}' \;
find /home/user2 -group user1 -exec chgrp user2 '{}' \;

运行正常,但(我猜是因为 ./.. 文件)不知何故 root/被改成了 user2。但是,/home仍归 root:root 所有。

我如何确定 find 会做什么?如何限制它向上移动树(朝向根目录),甚至在它修改工作目录本身之前停止它?

答案1

当我这样做时,find /home/$user它不会上升到树上。您可以将可操作的参数从命令中移除,find以查看将替换到花括号中的内容。

如果 home 是它自己的文件系统(可能应该是),则您可以使用-xdev它来不遍历其他文件系统。此外,-H它还告诉find不要遵循符号链接。

话虽如此,为什么不呢chown -R user2:user2 /home/user2

相关内容