web-dev-qa-db-ja.com

より広く使用されているもの:chmod 777またはchmod a + rwx

権限を変更する2つのオプションのうち:

  • chmod 777 file.txt
  • chmod a+rwx file.txt

ユーザーが特定のファイルのファイル権限を変更する必要があることを詳しく説明したドキュメントを書いています。ファイルのアクセス許可を変更する最も一般的な方法として詳しく説明します。

現在は言う:

- Set permissions on file.txt as per the example below:
    - chmod 777 /tmp/file.txt

これは単なる例であり、ファイルを変更してすべてのユーザーに完全な権限を与えることはしません。

20
Kevdog777

Googleが提供するもの:

chmod 777は約3倍人気があります。

とは言っても、ドキュメントとスクリプトでは自己記述型であるため、長いオプションを使用することをお勧めします。 「Run ls -l | grep file.txtおよび権限を確認してください。 "、chmod a+rwxこれは、lsがアクセス許可を表示する方法です。

29
jwhitlock

[私はベストプラクティスを追加するために編集し、彼の回答でDotancohenの提案に従いました。私はそれがそれをそれほど明確にしないこと、そして良い習慣がとられていることを望みます]

重要な追加情報:それらは同等ではありません

chmod a+rwx:最後の3つの8進数を777に設定します。これにより、所有者、グループ、およびユーザーに「rwx」が設定されます。最初の8進数に追加のビット(setuid、setgid、Stickyビット、あるいはその両方)がある場合、それらはそのままになります。バイナリの「または00777」と考えてください。

chmod 777:権限を00777に設定します。これにより、所有者、グループ、およびユーザーに「rwx」が設定され、さらに何も設定されなくなります。また、追加のビット(setuid、setgid、Stickyビット)が0に設定されていることも確認します。

ですから、全員にアクセスを許可することを確認したいだけの場合は、最初のフォームを使用してください(そして、それが必要であることをdouble、tripleに確認してください...これは、あらゆる種類のセキュリティ問題への扉を開きます。悪意のあるユーザーが実行できるようにする)

Setuid/setgid/stickyビットも必ずリセットしたい場合、つまり、ファイルを「00777」にする必要がある場合は、777フォームを使用してください。 :00777)。ここでも、トリプルが本当に必要であることを確認してください...

通常は、所有者(場合によってはグループ)へのアクセスを維持することをお勧めします。次に、グループを使用して、特定のユーザーにファイル/ディレクトリへのアクセスを許可します。 a + rwxは簡単であり、通常は間違った方法でアクセスを許可します(もちろん、非常にまれなケースがありますそれが唯一の方法である場合...)

http://en.wikipedia.org/wiki/Chmod は、各数字または文字が何を表すかを説明しているので、読みやすいです(setuid/setgid/stickyを含む)。

26
Olivier Dulac

私は通常、権限を0777に設定すると明示的に0777に設定されるという違いを考えます。前述のように、777と入力すると、先頭の0が推測されます。少し手つかず。

ファイルが実行可能であることを確認したいだけの場合、a + xを使用すると、他のアクセス許可を気にしたり変更したりせずに実行特権を変更できます。 8進数表現を使用した場合、意図した以外の方法で権限を変更しないように、現在設定されている権限を知る必要があります。

1
Josh Famestad

予算のWebホスティングのユーザー向けに作成されたものなどの「単純な人々のガイド」では、数値を与えることははるかに一般的だと思います。ただし、10進数ではなくoctalの値として指定するように注意してください。

$ chmod 0777 some_dir

0の先頭の0777に注意してください。 Bashや他のCLI環境は、パッドなしの777を使用して正しく動作しますが、PHPやPerlなどの多くのプログラミング言語には、先頭の0を必要とする同様の関数があります。したがって、Bashでの使用が想定されていることを覚えておくために、Bashでも使用することをお勧めします。

ダウンボッターへの注意:コメントで明記されているように、chmodコマンドは、10進表記が指定されていても、実際にはディレクティブを8進数として渡すことを知っています。ただし、すべての環境でこれがサポートされているわけではないため、明示的に指定することに慣れるのはベストプラクティスです。

0
dotancohen