あるユーザーに属するすべてのファイルを別のユーザーに変更するにはどうすればよいですか?
特定のユーザー(できればターゲットディレクトリ)に属するすべてのファイルの所有権を別の指定されたユーザーに変更できるLinuxコマンドを探しています。 私の夢のコマンドは次のようになります... chuser -R --olduser tom --newuser jerry または chuser -R --olduser 1066 --newuser 1492 これが私のシナリオです...ユーザーとグループの情報が保存されたバックアップファイル(.tgz)があります。ApacheとMySQLを実行しているWebサーバーから取得されました。バックアップ内のファイルはシステム全体からのものであり、複数の異なるユーザーおよび複数のシステムタイプのアカウントからのファイルが含まれており、新しいサーバーに復元したときに設定が失われないことが重要です。問題は、ファイルを復元するマシン上のユーザーが、バックアップファイル内のユーザーと一致しないことです。たとえば、両方のマシンにMySQLユーザーがありましたが、ユーザーIDが異なり、異なるユーザーに属する両方のマシンにいくつかのユーザーIDがありました。これは、新しいマシンのユーザーを古いマシンのユーザーに同期する方法がないことを意味します。 このような検索コマンドですべてのユーザーファイルを見つけることができます... find /decompressed-backup-dir -uid 1050 または find /decompressed-backup-dir -user tom 私が疑うように、単一のコマンドで必要なことを行う方法がない場合は、おそらくfindコマンドの結果を別のコマンドにパイプして所有権の変更を処理する方法がありますか? 私はPHPスクリプトでこれを行うことができますが、バックアップには4GBと数万のファイルがありますので、PHPやPerlを使用したくないのですが、それを処理できるシェルスクリプトで満足です。