より広く使用されている:chmod 777またはchmod a + rwx [終了]


20

権限を変更する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

これは単なる例であり、すべてのユーザーに完全なアクセス許可を与えるためにファイルを変更することはありません。


6
最初のソリューションはより短く、より広く使用されていますが、2番目のソリューションは見たことがありません。
アルケマール

2
すべてのユーザーに読み取り、書き込み、および実行のアクセス許可を設定することは、セキュリティの観点からは本当に良い考えではありません。代わりにchmod 773を使用する必要があります。
マーティンエルハート14

1
@MartinErhardt私は通常、775または755実行可能ファイルのみを使用します。
Kevdog777 14

3
chmod 777以下のようなものですchmod a=rwx、ではありませんchmod a+rwx
ステファンシャゼル14

1
777または、666よりシンプルで覚えやすいugo+rwxa+rwxまたはあいまいでugo+rw非常に混乱しやすくo、所有者または他の人のどちらかを選択できます。そのため、大きな間違いを犯す代わりに、manどちらがどれであるかを確認するか、単に数字を使用します。
ケノーブ14

回答:


29

Googleが提供するもの:

chmod 777 人気は約3倍です。

とはいえ、ドキュメントやスクリプトでは長いオプションを使用することを好みます。なぜなら、それらは自己文書化できるからです。「ls -l | grep file.txtアクセス許可の実行と確認」で手順をフォローしている場合は、chmod a+rwxlsがアクセス許可を表示する方法であるため、使用することができます。


これをありがとう。私は完全な(英数字)でそれを書き込むことによって、何を求めてから人々を防ぐことができますことを推測する7など、平均
Kevdog777

1
私は理由が思うchmod 777あなたは以下の2文字を入力することだけである(あなたの数字を見る前にconjeturedとして)より人気がある:)
アンヘル・

ドキュメントにヒントを追加する場合はchmod 777、同じ効果を得るための便利なショートカットであるヒントを追加できます。読者は、ドキュメントの教育的要素に感謝します。7を3回押すのがずっと簡単で速いため、777はより人気がありますが、新しいユーザーが初めて777を見ると、それが何を意味するのか分からない場合があります。だからこそ、それは主要なドキュメントとしては悪い選択です。しかし、ヒントとして言及する価値は間違いなくあります。
ADTC 14

接線として、私の兄弟と彼の友人はスクラブル語を許可するためにこのテクニックを使用します。単語が「本物」と見なされる前に、Googleのヒット数にある程度のしきい値がありました
ウェインワーナー14

それは古いので人気があると思います(記号表記は後で追加されました)。記号を使用する方が簡単だと思います。なぜなら、記号を入力することができた数字を計算するまでに、最初に正しく入力する傾向があるからです。
ctrl-alt-delor

26

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

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

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

chmod 777 :権利を00777に設定します。これにより、所有者、グループ、およびユーザーに「rwx」が設定され、それ以上は設定されません。また、追加ビット(setuid、setgid、および/またはStickyビット)が0に設定されていることを確認します。

だから、すべての人にアクセスを許可したいだけの場合は、最初のフォームを使用してください(必要なことを2倍、3倍にしてください...それはあらゆる種類のセキュリティ問題への扉を開きます悪意のあるユーザーに許可されています)

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

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

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


1
さらに、suidファイルに対するchmod a + w(a + rwxを含む)は非常に危険です。chmod a + w *について詳しく説明する必要がありますか?
ジョシュア14

others許可を設定するポイントは何ですか?ユーザーとしてマシンにログインしている場合、確実にusers許可を使用できますか?
Kevdog777 14

@ Kevdog777:その他は、所有者でもグループでもない人、つまりシステム上の他のすべての人向けです
オリビエデュラック14

1
@ Kevdog777:rootとユーザーのみがアクセスを必要とする場合:chmod 00600(ファイルを実行する必要がない場合)またはchmod 00700(ファイルを実行する必要がある場合-または-ディレクトリ)。または、chmod 00400を使用して、ファイルへの変更/書き込みに対する(小さな、簡単にオーバーライドされる)保護を追加します(ディレクトリの場合は00500)。そうすると、他のユーザー(およびユーザーではなくグループ内のユーザー)がファイル/ディレクトリにアクセスできなくなります。(dotandcohenのメモに続いて、そこに4番目の8進数と「0」を追加します。シェルには違いはありませんが、perl / C / etcを介して設定し、4番目の8進数が存在することを思い出させます、それも設定されている)
オリビエデュラック14

4
chmod 777のようなものchmod a=rwxです。
ステファンシャゼル14

1

通常、アクセス許可を0777に設定すると、明示的に0777に設定されるという違いがあると思います。前述のように、777を入力するだけで、先頭の0が推測されます。少し手つかず。

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


0

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

$ chmod 0777 some_dir

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

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


10
chmod数値を10進数として扱いません。chmod 777 filechmod 0777 file完全に同等です。
celtschk 14

3
@ Kevdog777:「8進数」は8進数を意味します。ただし、chmodシェルコマンドの使用に関する限り、気にする必要はありません。3桁の数字は互いに独立していると考えることができ、それぞれが1セットの許可を伝えます。
celtschk 14

3
chmodの場合、0777の0は実際には「setuid、setgid、およびstickyビットをクリアする」ことを意味します。これは、引数が常に4桁までの先行ゼロでパディングされるため、777と同等です。同じ理由で、chmod 77はと同等chmod 077です。
エミールイェジャベクはモニカをサポートします14

1
このchmodコマンドは、モード引数を8進数で解釈します。ほとんどのプログラミング言語(C、Perlなど)を使用している場合は注意する必要がありますが、シェルスクリプトではの場合は8進数ですchmod
ジル 'SO-悪であるのをやめる' 14

1
シェルに違いはないので、常に0を付加するのが良いので(たとえば、4オクタルすべてを設定しても:01777)、C、perlなどが8進数として解釈することを確認してください
Olivierデュラック14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.