Webアプリケーションディレクトリ内で、すべてのフォルダのアクセス許可をrwxr-xr-x
に変更するにはどうすればよいですか。 (755)?また、すべてのファイルのアクセス許可をrw-r--r--
に変更するにはどうすればよいですか。 (644)?サブサブファイルとフォルダを含むすべてのフォルダとファイルを変更したい。
次のコマンドですべてのファイルとフォルダが変更されることはわかっていますが、ファイルとフォルダを区別したいと思います。
chmod -R 755 ./my_web_app_project
承認された回答:
1つのfind
で目的を正確に実行する1つの方法 コマンドは
find my_web_app_project '(' -type f -exec chmod 644 {} ';' ')' -o '(' -type d -exec chmod 755 {} ';' ')'
-o
ORを意味します。
このコマンドは、プロジェクトツリー内の「ファイル」またはタイプのすべてのオブジェクトを処理します。 「ディレクトリ」と入力し、
そして、各オブジェクトのタイプに基づいてさまざまなコマンドを実行します。
セミコロン(';'
)を置き換えることで、これを少し効率的にすることができます
)プラス記号付き(+
);
これはfind
に通知します chmod 644
を実行するには 一度、すべてのプレーンファイルの名前を引数として
そしてchmod 755
を実行します 一度、すべてのディレクトリの名前を引数として使用します。
ちなみに、./
と言う必要はありません 現在のディレクトリでプログラムを実行する以外の場合
(ただし、名前が特殊文字で始まるファイルを操作する場合は
便利な場合があります)。
あなたの権限は今どのようになっているのだろうか
(再帰的なツリー全体のchmod
を実行する前に )。
通常、ファイルは、実際に実行可能なプログラムでない限り、
実行許可ビットがオンになりません。
または、誤ってchmod -R 755
などを実行した場合を除きます。 。
ディレクトリは通常、chmod -R 644
のような壊滅的なことを行わない限り、実行許可ビットをオフにしません
。
不適切なchmod -R
を実行したために、権限をひどく台無しにした場合
数値モードでは、
このセクションを無視して
、この回答の最初にあるコマンドを使用してください。
ただし、権限が一般的に正常であり、
ユーザーに
読み取り/書き込み権限の標準を課し、
他のすべての人(グループおよび世界)に読み取り専用の権限を課したい場合)、
できること
chmod -R +rX,u+w,go-w my_web_app_project
-
+rX
+r,+X
を意味します (X
に注意してください 大文字です—これは重要です。-
+r
ユーザー、グループ、その他に読み取り権限を設定することを意味します。 -
+X
ユーザー、グループ、その他の現在設定されている場合はに実行権限を設定することを意味します またはオブジェクトがディレクトリの場合 。
-
-
u+w
ユーザーに書き込み権限を設定することを意味します。 -
go-w
グループやその他の書き込み権限をオフにすることを意味します。
いくつかの重要なポイントの要約:
- もちろん、
chmod
することもできます
(特権がない限り)所有し、読み取り専用ではないもののみ。
ディレクトリにchmod
できないものがある場合 、
これらのコマンドのいずれかがエラーを引き起こします。 find
コマンドは、ディレクトリやファイルではないもの(名前付きパイプなど)には何もしません。find
-exec chmod 755 {} +
を使用したコマンド 最上位ディレクトリの下にあるすべてのフォルダへの読み取りおよび実行権限がまだない場合は、
失敗する可能性があります
。-
chmod -R +rX,u+w,go-w
コマンドは- すべてのディレクトリをモード755に設定します
- シンボリックリンクを無視する
- 他のすべてのファイルタイプ(名前付きパイプなどを含む)の場合:
- すでに少なくとも1つの
x
がある場合は、755に設定します 少し;それ以外の場合 - 644に設定します。
- すでに少なくとも1つの