本文へスキップ

chmod権限計算機

chmod Calculator

8進数・記号・チェックボックスの権限表記を相互に変換し、setuidとstickyビットも扱います。

権限のビットごとにチェックボックスが1つあり、8進数と`ls -l`の文字列と`chmod`の引数がまとめて更新されます。`u+x`のような記号の指定を、いまの値に当てはめてみることもでき、umaskを通すと何が残るのかも示します。

🔒 ブラウザの中だけで動きますchmodpermissionslinuxcalculator

権限

権限ビットごとにチェックボックスが一つ。
対象読み取り r書き込み w実行 x8進数
所有者このファイルを所有しているユーザー。6
グループこのファイルのグループに属するユーザー。4
それ以外すべてこのマシンの残りのアカウント全部。4
特殊ビット4桁目の8進数。0

chmod の引数

u=rw,g=r,o=r

記号表記で変えてみる

結果

744

ls での見え方

rwxr--r--

`chmod +x` は値ではなく変化です。何になるかは、もとが何だったかで決まります。

umask を通すと

このモードは

644

新しいファイルは

644

新しいディレクトリは

755

umask はプログラムが要求した権限からビットを取り除くものです。新しいファイルは 666、新しいディレクトリは 777 で要求されるので、同じ umask から 644 と 755 が出てきます。

実際にはこう見えます

-rw-r--r--  1 you  staff  4096  file.txt

この文字列に大文字の S か T があれば、set-id か sticky のビットは立っているのに、その下の実行ビットが落ちているという意味です。そのビットは何の効果もなく、ほとんどの場合は打ち間違いです。

使い方

  1. ビットを入れるか、数字を打ちます

    すべて双方向です。`755`と打てばチェックボックスがそれに従い、チェックボックスを入れれば8進数と`ls -l`の文字列が一緒に変わります。

  2. ディレクトリかどうかを伝えます

    ビットの意味が変わります。ディレクトリでは、実行が中へ入る権限、読み取りが一覧を見る権限です。読み取りはあるのに実行が無いディレクトリが紛らわしい場合で、注記がそれを指摘します。

  3. 記号の指定を試します

    `chmod +x`は値ではなく変化です。何ができあがるかは、もともと何だったかによります。`u+x,go-w`と入れて、実行する前に結果を確かめてください。

  4. umaskが何を残すかを確認します

    umaskは、プログラムが求めた権限からビットを取り除きます。入力したumaskのもとで、新しいファイルと新しいディレクトリがどの権限になるのかを示します。

よくある質問

同じumaskなのに644と755が出るのはなぜですか

マスクではなく、要求のほうが違うからです。プログラムは通常のファイルを666で、ディレクトリを777で要求します。`022`がそれぞれからグループとその他の書き込みビットを取り除くと、644と755が残ります。マスクが、要求されていない実行ビットを足すことはありません。

`ls -l`の大文字のSはどういう意味ですか

set-idかstickyのビットは立っているのに、その下の実行ビットが落ちているという意味です。そうなるとそのビットには何の効果もなく、ほとんど常に打ち間違いです。ちゃんと働く組み合わせは小文字の`s`です。

777が正しい場面はありますか

ほとんどありませんし、たいていは解決ではなく診断です。どのビットが実際に足りなかったのかを教えないまま、エラーだけを消してしまいます。共有のマシンでは、どのアカウントからでもそのファイルを書き換えられるという意味にもなります。

ACLも扱いますか

扱いません。古典的なUnixのモードだけです。`ls -l`の行の末尾に付く`+`は、その上にPOSIXのACLがあるという意味で、それはこの9つのビットが何も言っていないアクセスを許したり拒んだりします。確かめるなら`getfacl`です。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。