web-dev-qa-db-ja.com

ディレクトリに対する読み取りおよび書き込み権限を許可するためのChmod

ルートにディレクトリを作成しました。すべてのユーザーに特定のディレクトリへの読み取りおよび書き込み権限を許可するchmodコマンドを探しています。ファイルに対してchmod 775を実行しましたが、ディレクトリに対してもこれが必要です。これには、すべてのファイルとサブディレクトリに対する権限が含まれます。

58
chrissygormley

0775がファイルに対して正しいことはめったにありません。以下は、他の既存のパーミッションを乱すことなく、適切なタイプに適切なパーミッションを追加します。

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

それを解読するためには findのmanページ を見てください。

にとって すべて ユーザーが読み取りおよび書き込みアクセス権を持っている場合、それは0777になる可能性があります。これは、特にWebサーバーを実行している場合は多少危険です。 @unwindが言ったように:

chmod -R 0777 /mydirectoryすべてのユーザーがそのディレクトリ内のすべてのファイルとフォルダへの読み書きアクセスを許可します

目的によっては、スティッキビットについて読みたいと思うかもしれません。これは、すべてのユーザが新しいファイルを作成することを許可しますが、ディレクトリ内の他のファイルを削除または編集することはできません。

chmod +t /mydirectory

また、man chmodchmodコマンドのマニュアルページを表示することを知らない場合は、/recursiveと入力してテキスト「recursive」を検索できます

44
deadkarma

それはUnixの保護モデルがどのように機能するのかではありません、あなたは再帰的にパーミッションを設定することはできません。あなたはそれらをそれぞれのディレクトリに設定する必要があります。

もちろん、設定を再帰的に実行することもできますが、それは「以下のすべてのファイルとフォルダにアクセスしてこれらのアクセス許可を設定する」ことを意味するだけです。

これを行うには、chmodに - Rオプション を使用します。

$ chmod -R 0755 /my-cool-directory
14
unwind