我正在寻找一个Linux命令,该命令可以将属于给定用户(最好是目标目录中)的所有文件的所有权更改为另一个指定用户。
我的梦想命令看起来像这样...
chuser -R --olduser tom --newuser jerry
要么
chuser -R --olduser 1066 --newuser 1492
这是我的情况...我有一个备份文件(.tgz),其中保留了用户和组信息。它来自运行Apache和MySQL的Web服务器。备份中的文件来自整个系统,并且包含来自多个不同用户和多个系统类型帐户的文件,这是在新服务器上还原设置时不会丢失设置的关键。问题是正在还原文件的计算机上的用户与备份文件中的用户不匹配。例如,两台计算机都有一个MySQL用户,但是它们具有不同的用户ID,并且两台计算机上都存在多个属于不同用户的用户ID。这意味着无法将新计算机上的用户同步到旧计算机上的用户。
我可以使用以下find命令找到所有用户文件...
find /decompressed-backup-dir -uid 1050
要么
find /decompressed-backup-dir -user tom
如我所怀疑的,如果无法用单个命令来完成我想要的事情,那么也许有一种方法可以将find命令的结果传递给另一个命令来处理所有权更改?
我可以使用PHP脚本执行此操作,但是备份中有4GB内存和成千上万个文件,因此我不想使用PHP或Perl,但我对可以处理它的Shell脚本感到满意。
-uid
我用过-user