条件付きでファイルの所有権を変更するには?

条件付きでファイルの所有権を変更するには?

hello私の使命は、所有者がいる場合にのみ呼び出されるファイルの所有者を変更することです。試してみましたが動作しません。問題を解決するには助けが必要です。vincentguillamechmod vincent:guillame hello

答え1

chownは、ファイルの所有権を変更するために使用されるコマンドですchmod

find hello -user guillame -exec chown vincent {} \;

これはfindファイルとともにhello「検索パス」として使用されます。helloファイルの所有者がある場合、guillame実行findはそのファイルを次の引数として使用してchown vincentファイルの所有権をに変更しますvincent。ファイルを他の人が所有していない場合、guillame何も起こりません。

このコマンドは、すべてのUnixシステムに移植可能でなければなりません。

これは、現在のユーザーにファイルの所有権の変更を許可する権限があると仮定します。システムで高い権限でユーティリティを実行する別の方法を使用して、これらのいずれかをrootとして実行するか、chown独自に実行する必要があります。findsudodoas

答え2

名前が次のファイルのみhello

/usr/bin/test "$(stat --format="%U" hello)" = "guillame" && sudo chown vincent foo

関連情報