我可以更改特定用户的所有文件的所有权吗?

有没有办法recursion查找用户拥有的所有文件,并将其更改为Gnu / Linux中的另一个用户/组?

我认为必须有一些魔术一class,但我的命令行魔术技能不达标:)

谢谢!

使用find命令和-user选项。 就像是:

find / -user john

最终会打开用户“john”拥有的所有文件。

如果你想改变他们的所有权(我会运行find没有执行,以确保你有你想要的名单),然后像这样:

find / -user john -exec chown harry {} \;

会做的。

这是迟到,但今天我偶然发现这个问题,因为我的rsync没有--usermap选项。

我的chown (v。chown(GNU coreutils)8.13)提供了一个内置的recursion( -R )和一个--from选项,所以你的(和我的)问题也可以用

 chown -R --from=john harry / 

更具体地说,我正在将OpenSuse服务器迁移到debian,并且在发行版中,apache2的用户和组是不同的。 在OpenSuse中,用户wwwrun (id:30)和group www (id:8) ,在debian www-data (id: 33)中都是。 我使用复制文件之后

 rsync -az /path/to/files me@debian:/path/to/ 

我用了

 chown -R --from=30 33 /path/to/files/ chown -R --from=:8 :33 /path/to/files/ 

在目标(debian)机器上。


注意: rsync version 3.1.0 protocol version 31有上面提到的 – 用户--usermap所以如果我有,我可以用一个命令在源机器上完成所有三个步骤:

 rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/