ファイルの権限(所有者・パーミッション)を一括で変更する方法

所有者の変更
 実行例
パーミッションの変更
 実行例 -execオプション
 実行例 パイプとxargs

所有者の変更

所有者変更はchmodで変更ができます。

chown 【ユーザー名】:【グループ名】 【ファイルパス】


/home/hoge/sample のファイルをユーザーhoge・グループusersに変更する場合は

chown hoge:users /home/hoge/sample

ディレクトリ以下のファイルを一括で変更するには、
-Rオプションを付けると再帰的にchownを実行することができます。

chown -R 【ユーザー名】:【グループ名】 【ファイルパス】

chown -R hoge:users /home/hoge

パーミッションの変更

パーミッション変更はchmodで変更ができます。

chmod 【パーミッション値】 【ファイルパス】


/home/hoge/sample のファイルを755に変更する場合は

chmod 755 /home/hoge/sample

ディレクトリ以下のファイルを一括で変更するには、
-Rオプションを付けると再帰的にchmodを実行することができます。

chown -R 【パーミッション値】 【ファイルパス】

chown -R 755 /home/hoge

ただしこの場合、ファイルもディレクトリもパーミッションが同じ値に変更されます。

ファイルのみ、ディレクトリのみの変更を行いたい場合はfindで検索した結果に対してパーミッション変更を実行します。

find 【ディレクトリパス】

で、ディレクトリ以下のファイル・ディレクトリをすべて調べられます。

-type dオプションでディレクトリ、-type fオプションでファイルのみを抽出します。

find 【ディレクトリパス】 -type d → ディレクトリのみを抽出
find 【ディレクトリパス】 -type f → ファイルのみを抽出

-execオプションで抽出結果に対してコマンドを実行します。


/home/hoge ディレクトリ以下の、ディレクトリを755、ファイルを644に変更する場合

$ find /home/hoge -type d -exec chmod 755 {} +
$ find /home/hoge -type f -exec chmod 644 {} +

抽出結果をパイプでxargsに渡してコマンド実行することもできます。

$ find /home/hoge -type d -print0 | xargs -0 chmod 755
$ find /home/hoge -type f -print0 | xargs -0 chmod 644

関連記事

スポンサーリンク

Poderosa5で「インデックスが配列の境界外です。」と出る場合の対処法(CentOS8 Ubuntu)

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る