Chmod 計算機
Linuxファイルパーミッションをインタラクティブに計算。数値表記と記号表記を相互変換。無料、ブラウザ内で処理。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
よく使うパーミッション
644(rw-r—r—):通常のファイル(所有者が読み書き、他は読み取りのみ)755(rwxr-xr-x):ディレクトリ・実行ファイル(所有者が全権、他は読み取り・実行のみ)600(rw-------):秘密鍵などの機密ファイル(所有者のみ読み書き)777(rwxrwxrwx):全員が全権(セキュリティ上のリスクがあるため通常は避ける)
ロリポップ!の推奨値を記号表記で確かめる
共用のレンタルサーバーでは、マニュアルにパーミッションの推奨値が数値で載っていることがよくあります。
ロリポップ!のマニュアル「パーミッションについて」には「ロリポップ!では、以下の設定を推奨します。」として、
HTML・画像ファイルと .htaccess は 604、CGI の実行ファイルは 700、CGI のデータファイルは 600、ディレクトリは 705 が挙げられています。
このうち 604 と 705 を数値欄に入れると、次の記号表記とコマンドになります。
604 rw----r-- chmod u=rw,g=,o=r filename
705 rwx---r-x chmod u=rwx,g=,o=rx filename
どちらもグループには何も許可せず、「その他」にだけ読み取り(ディレクトリでは読み取りと実行)を残す値です。同じマニュアルには、CGI の設置手順に「CGI実行ファイルは777」「データファイルは666」とあっても、 ロリポップ!ではセキュリティ上その設定では動作しない場合があるので表のとおりに設定するよう書かれています。FTP ソフトで設定する前にツールで記号表記を見ておくと、 桁の取り違えに気づけます。
全角の数字で入力した場合
日本語入力をオンにしたまま数字を打つと、604 のような全角数字になることがあります。数値欄は全角の数字を半角に読み替えて計算するので、そのままでも結果が出ます。
入力欄の全角数字はそのまま残り、横のコピーボタンも全角のままコピーします。半角の値が必要なときはコマンド欄を使ってください。
数値欄:604(そのまま)
コマンド:chmod 604 filename
前後の空白と、Python の 0o604 のような先頭の 0o は無視します。8 や 9 が混じった値、2 桁以下や 5 桁以上の値は「無効な8進数」と表示し、直前の有効な結果を残します。シンボル欄は半角の r w x - などだけを受け付けます。
特殊ビット:SUID・SGID・スティッキー
ls -l の表示をそのまま貼り付けると、特殊ビットを含む 4 桁の数値が出ます。先頭のファイル種別の文字と、末尾の + @ . は取り除かれます。
drwxrwxrwt → 1777
chmod u=rwx,g=rwx,o=rwx,+t filename
/tmp の drwxrwxrwt は、だれでもファイルを作れるが他人のファイルは消せないスティッキービット付きのディレクトリです。
シンボルコマンドではスティッキーを独立した +t で書きます。macOS の chmod は o+t を無視しますが、+t は GNU と macOS の両方で効きます。
-rwsr-xr-x → 4755
chmod u=rwxs,g=rx,o=rx filename
制限と注意点
- 出力するのは絶対指定(
u=…,g=…,o=…)だけです。chmod g+wやa-xのような相対指定、ディレクトリにだけ実行権を付けるXは作りません。 - GNU の chmod は、4 桁以内の数値(
755・0755)や s に触れない記号指定ではディレクトリの SUID・SGID を変えません(coreutils マニュアル)。2775のディレクトリはchmod 755のあとも2775のままで、外すにはchmod 00755かchmod g-sを使います。 find . -type f -perm 0604は権限がちょうど 604 のファイルだけを探します。少なくともそのビットを持つファイルは-perm -604、どれか 1 つでも持つファイルは-perm /604(GNU find)です。- 実際に読めるかどうかは ACL、SELinux、
noexecなどのマウントオプション、上位ディレクトリのパーミッションにも左右されます。ツールが計算するのは 9 ビットと特殊ビットだけです。
FAQ
chmod とは何ですか?
chmod(change mode)は、Unix や Linux でファイルとディレクトリのパーミッション(アクセス権)を変更するコマンドです。所有者(owner)・グループ(group)・その他(others)の 3 種類のユーザーそれぞれについて、読み取り(r)・書き込み(w)・実行(x)を許可するかどうかを決めます。
755や644などの数値は何を意味しますか?
各桁は8進数で、左から所有者・グループ・その他の権限を表します。r=4、w=2、x=1の合計です。例:7=rwx(4+2+1)、5=r-x(4+1)、4=r--、0=権限なし。
755・644・600 はどんなときに使いますか?
755(rwxr-xr-x)はディレクトリや実行するスクリプトの定番で、所有者は全権、他のユーザーは読み取りと実行ができます。644(rw-r--r--)は通常のファイル向けで、所有者だけが書き込めます。600(rw-------)は SSH の秘密鍵のように所有者以外に見せないファイルに使います。
4755 や 1777 のような 4 桁の数値は何ですか?
先頭の桁は特殊ビットの合計で、4 が SUID、2 が SGID、1 がスティッキービットです。4755 は 755 に SUID、1777 は 777 にスティッキービットを加えた値です。記号表記では実行の位置に入り、実行権限もあれば s・t、なければ S・T になります(4755 は rwsr-xr-x)。「特殊ビット」を開いてチェックするか、数値欄に 4 桁で入力します。GNU の chmod でディレクトリに 755 を指定しても既存の SGID は外れないので、外すときは 00755 か g-s を使います。
ロリポップ!ではどのパーミッションに設定すればよいですか?
ロリポップ!のマニュアル「パーミッションについて」は、HTML・画像ファイルと .htaccess を 604、CGI の実行ファイルを 700、CGI のデータファイルを 600、ディレクトリを 705 にするよう推奨しています。CGI の説明書に 777 や 666 と書かれていても、ロリポップ!ではセキュリティ上その設定では動作しない場合があるとしています。各値を数値欄に入れると記号表記を確認できます。
入力したパーミッションは送信・保存されますか?
いいえ。計算はブラウザーのタブの中で行われ、チェックした権限や入力した数値・記号表記をサーバーへ送ったりブラウザーのストレージに保存したりしません。ページのアクセス解析が記録するのは利用イベント(ツール名と操作:チェックボックス、特殊ビット、確定した数値または記号の入力)だけで、パーミッションの値は含みません。