How To Chown Recursively on Linux

ChownはLinuxのコマンドで、一連のファイルやディレクトリの所有者を変更するために使用します。

Chownには複数のオプションがあり、ファイルを所有するグループを変更するためによく使用されます。

しかし、場合によっては、ディレクトリとその中のすべてのファイルの所有者を変更する必要があります。

そのためには、chown コマンドのオプションの 1 つである recursive chown を使用する必要があるかもしれません。

目次

Chown Recursively

chown recursive コマンドを使う最も簡単な方法は、「chown」に recursive 用「-R」オプションを付けて実行し、新しいオーナーと変更するフォルダーを指定することです。

$ chown -R <owner> <folder_1> <folder_2> ... <folder_n>

例えば、特定のユーザーのホームディレクトリにあるディレクトリとファイルの所有者を変更したい場合、

$ chown -R user /home/user

Note : chown コマンドの完全ガイドが必要なら、我々は Linux のファイルのパーミッションに関する広範囲なガイドを書いていますので、それを参照してください。

Chown User and Group Recursively

ディレクトリやファイルを所有するユーザーとグループを変更するためには、”-R” オプションを指定して、ユーザーとグループをコロンで区切って指定する “chown” を実行しなければなりません。

これを実現するには、次のコマンドを実行します。

$ chown -R user:root /home/user

おめでとうございます、あなたは「chown」コマンドを再帰的に使用してサーバーの所有者を変更することに成功しました!

Chown recursively using find

「chown」コマンドを再帰的に使用するもうひとつの方法は、「find」コマンドと組み合わせて、与えられたパターンに一致するファイルを見つけ、そのオーナーとグループを変更する方法です。

$ find <path> -name <pattern> -exec chown <user>:<group> {} \;

たとえば、サーバー上の特定のディレクトリに存在するすべての TXT ファイルの所有者を変更したいとします。

まず最初に、正しいファイルにマッチしていることを確認するために、「find」コマンドを単独で実行することが非常に推奨されます。

この例では、現在のユーザーのホーム ディレクトリにあるすべての TXT ファイルにマッチします。

$ find /home/user -name *.txt

正しいファイルをターゲットにしていることを確認したら、パーミッションを再帰的に変更するために「chown」と結合できます。

$ find /home/user -name *.txt -exec chown user {} \;

ご覧のように、TXT ファイルの所有者は変更されていますが、他のファイルやディレクトリは何も変更されていません。

Being careful with recursive chown

Linux では、chown、chmod、rm といったコマンドの実行は決定的であり、後戻りはできない。

この点は、前のセクションで説明されています: find コマンドを単独で実行し、それが正しい結果であることを確認しました。

経験則として、コマンドの出力に確信が持てない場合、有害なものを実行しないと確信できるまで、コマンドをより小さな断片に分割してください。

Linux のアクセス許可は幅広いトピックです。

また、Linux システム管理に興味があるなら、この Web サイトに専用のセクションがありますので、ぜひチェックしてみてください!

コメントする