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

我正在复制一个用户主目录作为用户#2的主目录,因此需要将内容分发给新用户。 运行:

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

工作好,但(由于./ ..文件,我想),不知何故根/被chown'ed user2。 但是, /home依然由root:root拥有。

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

当我find /home/$user时候,它不会上去。你可以把可执行的参数从find命令中去掉,看看哪些东西会被replace成大括号。

如果home是自己的文件系统,并且可能应该是,那么可以使用-xdev来不遍历其他文件系统。 另外, -H告诉find不要遵循符号链接。

这就是说,为什么不chown -R user2:user2 /home/user2