lsの権限表示を数値に直す
ls -lの先頭にある-rw-r--r--は、通常ファイルを示す記号と9文字の権限です。計算欄では先頭の種別を除いて読み取り、644へ変換します。一覧全体ではなく、権限フィールドだけを貼り付けてください。
チェックボックスから設定を組み立てることも、数値を直接入力することもできます。変更内容を確認して対象パスを入れると、1つの対象に使うコマンドをコピーできます。ブラウザーからサーバーへ接続する処理はありません。
ファイルとディレクトリで異なる実行権限
ディレクトリの実行権限は、プログラムを動かすという意味ではなく、検索や通過に関係します。読み取りは名前の一覧、書き込みは項目の変更に関わり、実用的な変更操作には検索権限も必要になります。
そのため、通常ファイルに使う644をディレクトリへそのまま適用するとは限りません。ファイル削除は親ディレクトリの権限や制限にも左右されます。ACLやマウント設定を含む実際のアクセス可否は、この数値だけでは判定できません。
4・2・1を足して3つの桁を作る
読み取りは4、書き込みは2、実行は1です。rwxは7、r-xは5、r--は4なので、rwxr-xr--は754になります。所有者、グループ、その他の順に、それぞれ別の値を並べます。
特殊ビットを使う場合は先頭に1桁追加します。setuidは4、setgidは2、stickyは1。4755は755にsetuidを加えた表記です。
| 8進数の値 | rwx | 権限 |
|---|---|---|
0 | --- | 権限なし |
1 | --x | 実行 |
2 | -w- | 書き込み |
3 | -wx | 書き込み + 実行 |
4 | r-- | 読み取り |
5 | r-x | 読み取り + 実行 |
6 | rw- | 読み取り + 書き込み |
7 | rwx | 読み取り + 書き込み + 実行 |
sとS、tとTの違いを確認する
小文字は対応する実行ビットも有効、大文字は実行ビットが無効であることを表します。特殊ビットを選ぶだけで実行権限が自動追加されることはありません。Linuxのディレクトリではsetgidがグループ継承、stickyが削除・名前変更の制限に使われます。
GNU chmodでは4桁以下の数値指定でディレクトリのsetuid/setgidが残る場合があります。明示的に外す例はchmod 00755 -- 'directory'です。入力欄は3桁・4桁のモード値を受け付け、既存ファイルの状態までは再現しません。
用途から見るパーミッションの例
| 8進数の値 | rwx | 権限の内訳 |
|---|---|---|
644 | rw-r--r-- | 所有者は読み書き、グループとその他は読み取り。実行ビットなし。 |
755 | rwxr-xr-x | 所有者は読み書きと実行、グループとその他は読み取りと実行・検索。 |
600 | rw------- | 通常の読み書き権限を所有者だけに限定するファイル。 |
700 | rwx------ | 所有者だけが一覧・変更・検索できるディレクトリ。 |
2775 | rwxrwsr-x | Linuxディレクトリでグループ共有とsetgidによるグループ継承を使う例。 |
1777 | rwxrwxrwt | 共有ディレクトリにstickyを付け、削除や名前変更を制限する例。 |
chmod 644 -- 'report.txt'
chmod 755 -- 'deploy.sh'
chmod 700 -- 'private-directory'よくある疑問
755を選べばスクリプトは必ず動きますか?
実行ビットは設定されますが、インタープリター、親ディレクトリ、マウント設定なども関係します。計算結果は実行成功の保証ではありません。
先頭のdも変換対象ですか?
dなどの認識できる種別文字は読み飛ばします。ファイルの種別を変更する操作ではありません。ACLマーカーや一覧の残りは除いてください。
777で権限エラーを解決してよいですか?
777は全クラスに読み書きと実行を許可します。必要以上に広げる前に、所有者と対象クラス、親ディレクトリの検索権限、追加のアクセス制御を確認してください。
u+xも入力できますか?
相対指定のchmod式は解析しません。8進数またはrwx表記を入力します。既存の他の権限を保って実行だけを追加したい場合は、u+xなどの指定を別途検討してください。
入力すると実際の権限が変わりますか?
変わりません。ブラウザーで計算するだけで、コマンド実行や再帰処理は行いません。umaskは新規作成時の権限に関する別の仕組みです。
