この記事にはプロモーションが含まれていることがあります

【Linux】パーミッションを一括で設定し直す

IT
スポンサーリンク

【Linux】パーミッションを一括で設定し直す

最近お邪魔したLinuxサーバのファイルリストを表示して愕然としたのですが、パーミッションがオール777という気持ち悪さ全開・・・ どうしてこうなった。

そんな時は、chmodコマンドとxargsコマンドを組み合わせて使うと一発で解決できます。

chmodコマンドの -R オプションで下層フォルダまで一括で変更できますが、フォルダは実行権限がないと中に入れなかったりするので、ファイルとフォルダそれぞれ設定する必要があり、ちょっと面倒です。

誤ってフォルダの実行権限を取ってしまった結果、中身が参照できなくてシステムエラーになるパターンもよくあります。そんな時は今回紹介する方法で指定フォルダ配下のサブフォルダに対して一気に実行権限を付与できるので便利です。

うん、lsコマンドでファイルリストを確認すると、、、気持ち悪いですね

chmodコマンドでフォルダとファイルにそれぞれパーミッションをセットしていけばいいのですが、フォルダ階層が深いと地獄です。

そんな時はこのように、findコマンドでファイルパスを掘り起こして、xargsコマンドで一気にchmodコマンドに流し込んでしまうと一瞬で片付きます。

◆ファイルのパーミッションを644に変更
$ find . -type f -print0 | xargs -0 chmod 644

◆フォルダのパーミッションょ755に変更
$ find . -type d -print0 | xargs -0 chmod 755

◆シェルスクリプトに実行権限を付ける
$ find . -name '*.sh' -print0 | xargs -0 chmod 755

findで指定するパスと、chmodで指定するパーミッションは設定したい場所と内容によって適宜読み替えてください。

ファイル名にスペースが入る場合は、-print0を指定することでファイル区切り文字がヌル文字になり、xargs側の -0 オプションでヌル文字を区切り指定することで正しく処理できます。詳しい解説はこちら

おすすめ書籍の紹介コーナー

Linuxについてもっと詳しく知りたい方にオススメの書籍を紹介しておきます。

Linuxは実際に自分で触って覚えるのが一番早い!

Linuxはシェルスクリプトが組めて一人前、そして作業効率アップには欠かせません。
システム開発現場ではシェルスクリプトが組めてようやくLinuxかじったことありますと言えるぐらい重要です。

コメント

タイトルとURLをコピーしました