chmod権限計算機
chmod Calculator
8進数・記号・チェックボックスの権限表記を相互に変換し、setuidとstickyビットも扱います。
権限のビットごとにチェックボックスが1つあり、8進数と`ls -l`の文字列と`chmod`の引数がまとめて更新されます。`u+x`のような記号の指定を、いまの値に当てはめてみることもでき、umaskを通すと何が残るのかも示します。
権限
| 対象 | 読み取り r | 書き込み w | 実行 x | 8進数 |
|---|---|---|---|---|
| 所有者このファイルを所有しているユーザー。 | 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 のビットは立っているのに、その下の実行ビットが落ちているという意味です。そのビットは何の効果もなく、ほとんどの場合は打ち間違いです。
使い方
ビットを入れるか、数字を打ちます
すべて双方向です。`755`と打てばチェックボックスがそれに従い、チェックボックスを入れれば8進数と`ls -l`の文字列が一緒に変わります。
ディレクトリかどうかを伝えます
ビットの意味が変わります。ディレクトリでは、実行が中へ入る権限、読み取りが一覧を見る権限です。読み取りはあるのに実行が無いディレクトリが紛らわしい場合で、注記がそれを指摘します。
記号の指定を試します
`chmod +x`は値ではなく変化です。何ができあがるかは、もともと何だったかによります。`u+x,go-w`と入れて、実行する前に結果を確かめてください。
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`です。
ここから渡せます
進数変換
Number Base Converter
2進数・8進数・10進数・16進数から36進法までを相互に変換し、ビット単位の表示も並べます。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
YAMLフォーマッター・検証
YAML Formatter & Validator
YAMLのインデントを揃えて検証し、パーサを壊すタブやアンカーの誤りに印を付けます。
TOMLフォーマッター・検証
TOML Formatter & Validator
TOMLを整形して検証し、テーブルの順序とインラインテーブルの書き方を揃えます。
次の一手
このツールが出したものをそのまま受け取れる道具です。
docker runをComposeに
docker run to Compose
docker runのコマンドラインをcomposeのサービス定義に直し、逆方向の変換もできます。
.envの解析・変換
.env Parser & Converter
.envファイルを解析して、JSON・YAML・シェルのexport・Docker・Kubernetesの形式に変換します。
.gitignore生成
.gitignore Generator
言語・フレームワーク・エディタのテンプレートを選んで組み合わせ、重複をまとめて.gitignoreを作ります。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。
文字列のハッシュ
Text Hash
文字列のMD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC-32を計算し、大文字表記とBase64での出力も選べます。