★★★ Twitterやってます。フォローして頂けると嬉しいです(*^^*) ★★★

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

IT
スポンサーリンク

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

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

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についてもっと詳しく知りたい方にオススメの書籍を紹介しておきますね

コメント

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