特定のユーザーが所有するすべてのファイルを再帰的にchownします


32

特定のユーザーが所有するすべてのファイルを見つけて表示することは可能ですか?間違ったユーザーとしてたくさんのことをしたので、正しいユーザーにファイルの所有権を与える必要があります。

たくさんのファイルとディレクトリをchownできる再帰的かつ条件付きの方法はありますか?

回答:


60

このポータブルなfindコマンドは、このようなもので使用できます。

find . -user old-user -exec chown new-user:new-group {} \;

これを展開して、-inameオプションを使用して特定のファイルを見つけることができます(非POSIXですが、OSXで使用可能)

find . -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

。は現在のフォルダー以下を表すため、特定のパスをベースとして使用できます。

find /var/www/ -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

私が探していたもの。ただ、チャウンの後のオプションnew-user:new-userはおそらく言うべきであることに注意するためにnew-user:new-group
ヘネスナーフェル

2
スペースを含むパスを適切に処理するには、中括弧を引用符で囲む必要があると思います。だからfind . -user old-user -exec chown new-user:new-group "{}" \;
ダンベナミー14年

特定のユーザーが所有していないファイル(そのユーザーが所有していないホームディレクトリ内のユーザーのファイル)を見つける方法を他の誰かが探している場合は、「!」を追加できます。-user other-user反対を見つけるためのセクション。たとえば、find . ! -user other-user
ジョン

多くの場合、上記を追加すると便利です-group old-group。あなたがグループ所有権(管理者、スタッフ、sillyothergroupname)保存することができますこの方法
brianlmerritt

ps-chownにはsudoが必要な場合があります
brianlmerritt

12

使用できます

chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group  *

マニュアルからchown --help

  --from=CURRENT_OWNER:CURRENT_GROUP
                     change the owner and/or group of each file only if
                     its current owner and/or group match those specified
                     here.  Either may be omitted, in which case a match
                     is not required for the omitted attribute.

編集:もちろん、これはLinuxとほとんどのUNICE でのみ動作します。OSX(BSDベース)については、@ StephenTrappedのソリューションを参照してください。


+1ですが、OSXでは機能しchownません。そのオプションはありません。こちらをご覧ください
テルドン

おっと、確かに、osxというタグを見逃しました:) @StephenTrapped upに投票しました。
リック

chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group *folderコマンドの隠しファイルは実行さchown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group .れますが、親フォルダーの隠しファイルでも機能します。
ラシェー

3

-hchown のオプションは、ターゲットだけでなく、シンボリックリンクファイル自体の権限を変更します。

シンボリックリンクを使用してバージョンを切り替えるソフトウェアバイナリフォルダーでこれを行う場合、これは非常に重要です。

find . -user old-user -exec chown -h new-user:new-group {} \;

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.