本文へスキップ
App Museum
English

chmod計算ツール(パーミッション変換)

Linux・macOS のファイルのパーミッションを、755 のような数値と rwxr-xr-x のような記号のあいだで変換します。r・w・x のマスを押して読み取り・書き込み・実行を選ぶと、chmod コマンドがその場でできあがります。setuid・setgid・スティッキービットにも対応し、umask から新しいファイルとディレクトリの権限も出せます。

755、0644、rwxr-xr-x、-rw-r--r-- のどの形でも入力できます

よく使う設定

所有者(u)
グループ(g)
その他(o)
特殊な権限

数値(8進数)

755

記号

rwxr-xr-x

所有者
読み取り・書き込み・実行
グループ
読み取り・実行
その他
読み取り・実行
ls -l の表示(ファイル)
-rwxr-xr-x
ls -l の表示(ディレクトリ)
drwxr-xr-x

chmod コマンド

chmod 755 ファイル名
chmod u=rwx,g=rx,o=rx ファイル名

すでに付いている setuid・setgid・スティッキービットは、OS によっては上のコマンドで外れません。外すときは chmod u-s、chmod g-s、chmod -t を使ってください

umask から新しいファイルの権限を出す

022、0027、002 のような数値で入力します。今の値は、ターミナルで umask を実行すると表示されます

新しいファイル

644

-rw-r--r--

666 から umask を外した値

新しいディレクトリ

755

drwxr-xr-x

777 から umask を外した値

umask -S の表示
u=rwx,g=rx,o=rx
  • touch やエディタで作るファイルは 666、mkdir で作るディレクトリは 777 を基準にします。cp でコピーしたファイルや、ssh-keygen のように権限を指定して作るプログラムでは、この値と違うことがあります

使い方

  1. 「パーミッション(数値または記号)」に、755 のような数値か、rwxr-xr-x のような記号を入力します。ls -l の出力から -rw-r--r-- をそのまま貼り付けてもかまいません
  2. または、権限の表で、「所有者」「グループ」「その他」の行にある r(読み取り)・w(書き込み)・x(実行)のマスを押して選びます。「よく使う設定」のボタンからも選べます
  3. 下に、次の内容が表示されます
  • 数値(8進数)と記号
  • 所有者・グループ・その他のそれぞれに許されている操作
  • ls -l での表示(ファイルの場合とディレクトリの場合)
  • chmod コマンド。数値で指定する形と、u=rwx,g=rx,o=rx のように記号で指定する形の2つ

表のマスは、付いている権限には文字が、付いていない権限には - が入るので、各行が rwx や r-x のように ls -l と同じ形で読めます。行の右端の数字は、その行の数値(r が4、w が2、x が1の合計)です。いちばん下の「特殊」の行では setuid・setgid・スティッキービットを選べ、この行の数字が4桁の数値の先頭の桁になります。

ボタンを押す必要はありません。入力や表のマスを変えるたびに、結果がその場で変わります。ページを開いた時点では、例として 755 が入っています。

表のマスや「よく使う設定」を操作すると、入力欄は数値に書き換わります。記号で入力していた場合も、数値になります。

コマンドの右のボタンを押すと、chmod 755 のように、ファイル名の手前までがクリップボードに入ります(最後に空白が1つ付きます)。貼り付けたあとに、続けてファイル名を入力してください。

入力できる形式

  • 755、644 — 3桁の数値
  • 0755、4755、1777 — 4桁の数値。先頭の桁が特殊な権限です
  • rwxr-xr-x — 9文字の記号
  • -rwxr-xr-x、drwxr-xr-x — 先頭に種類の1文字が付いた、ls -l の表示。先頭の文字(- d l b c p s)は読み飛ばします
  • -rw-r--r--@、drwxr-xr-x+、-rw-r--r--. — ls -l が末尾に付ける @ + . も読み飛ばします

全角の数字や文字(755)は、半角に直して読み取ります。

数値が1桁か2桁のあいだ、記号が9文字そろうまでのあいだは、入力の途中とみなして、結果を表示せずに待ちます。

数値と記号の読み方

パーミッションは、だれに(所有者・グループ・その他)、何を(読み取り・書き込み・実行)許すかの組み合わせです。

  • 読み取り(r)= 4
  • 書き込み(w)= 2
  • 実行(x)= 1

数値は、許す操作の数を足したものを、所有者・グループ・その他の順に3つ並べます。755 なら次のとおりです。

  • 所有者: 7 = 4 + 2 + 1 → rwx(読み取り・書き込み・実行)
  • グループ: 5 = 4 + 1 → r-x(読み取り・実行)
  • その他: 5 = 4 + 1 → r-x(読み取り・実行)

1桁の数と記号の対応は、次の8とおりです。

0  ---
1  --x
2  -w-
3  -wx
4  r--
5  r-x
6  rw-
7  rwx

それぞれの桁は 0〜7 の8進数です。8進数と2進数・10進数の関係は、進数変換ツールで確かめられます。

ファイルとディレクトリでの意味の違い

同じ r w x でも、ファイルとディレクトリでは意味が変わります。

  • 読み取り(r): ファイルでは内容を読めます。ディレクトリでは、中にあるファイルの名前の一覧を見られます
  • 書き込み(w): ファイルでは内容を書き換えられます。ディレクトリでは、中にファイルを作る・削除する・名前を変えることができます。これには実行(x)も必要です
  • 実行(x): ファイルではプログラムやスクリプトとして実行できます。ディレクトリでは、その中に入る(cd)ことと、中のファイルにアクセスすることができます

ファイルを削除できるかどうかは、そのファイル自身のパーミッションではなく、ファイルが入っているディレクトリの書き込み(と実行)で決まります。

よく使う設定

644   rw-r--r--   ふつうのファイル。所有者だけが書き換えられ、ほかの人は読むだけ
755   rwxr-xr-x   ディレクトリ、実行するプログラムやスクリプト
600   rw-------   自分だけが読み書きするファイル(SSH の秘密鍵など)
700   rwx------   自分だけが使うディレクトリ(~/.ssh など)
664   rw-rw-r--   グループのメンバーも書き換えるファイル
775   rwxrwxr-x   グループのメンバーも書き込むディレクトリ
400   r--------   所有者も読むだけにするファイル
777   rwxrwxrwx   だれでも読み書き・実行できる。ふつうは避ける
1777  rwxrwxrwt   /tmp のような、だれでも書き込める共用のディレクトリ

777 は、そのコンピューターのどのユーザーにも書き換えを許します。その他に書き込み(w)が付いているときは、結果の下に注意が表示されます。スティッキービットが付いていても、ファイルの内容の書き換えは防げないので、注意は同じように表示されます。「動かないのでとりあえず 777」とせず、所有者やグループを確かめて、必要な範囲だけを許してください。

特殊な権限(4桁目)

数値の前にもう1桁を付けると、3つの特殊な権限を指定できます。

  • setuid(4): 実行ファイルに付けると、だれが実行しても、そのファイルの所有者の権限で動きます。passwd コマンドなどで使われています
  • setgid(2): 実行ファイルでは、そのファイルのグループの権限で動きます。ディレクトリに付けると、中に作ったファイルが、作った人のグループではなく、そのディレクトリのグループを引き継ぎます
  • スティッキービット(1): ディレクトリに付けると、中のファイルを削除したり名前を変えたりできるのが、そのファイルの所有者とディレクトリの所有者(と root)だけになります

記号では、特殊な権限は実行(x)の位置に表示されます。

  • setuid は所有者の実行の位置に s、setgid はグループの実行の位置に s、スティッキービットはその他の実行の位置に t
  • その位置の実行が付いていないときは、大文字の S・T になります
4755  rwsr-xr-x
4644  rwSr--r--
2775  rwxrwsr-x
1777  rwxrwxrwt
1776  rwxrwxrwT

chmod コマンドについて

結果には、同じパーミッションを指定する2つの書き方が表示されます。

  • chmod 755 ファイル名 — 数値で指定する書き方
  • chmod u=rwx,g=rx,o=rx ファイル名 — 記号で指定する書き方。u は所有者、g はグループ、o はその他です

記号の書き方では、setuid は u=rwxs、setgid は g=rxs のように s を足し、スティッキービットは最後に ,+t を足します。スティッキービットを o=rwxt と書く方法は、Linux(GNU)の chmod では効きますが、macOS の chmod では効かないため、どちらでも効く +t にしています。

付いている特殊な権限を外すときの動きは、OS によって違います。そのため、コマンドの下にはいつも、外れないことがあるという注意を表示しています。確実に外すには、chmod u-s、chmod g-s、chmod -t のように、外す指定をしてください。

  • Linux(GNU)の chmod は、ディレクトリの setuid・setgid を、chmod 755 でも chmod u=rwx,g=rx,o=rx でも外しません
  • macOS の chmod は、chmod u=rwx,g=rx,o=rx ではスティッキービットを外しません(chmod 755 では外れます)

chmod は、ファイルの所有者か root だけが実行できます。

umask から新しいファイルの権限を出す

umask は、新しく作るファイルやディレクトリから外す権限を決める設定です。ページの下の「umask」の欄に 022 のような値を入力すると、その umask のもとで新しく作られるファイルとディレクトリの権限が表示されます。ページを開いた時点では、例として 022 が入っています。

今の umask は、ターミナルで引数を付けずに umask を実行すると表示されます。bash では 0022、zsh では 022 のように表示されますが、どちらの形でも入力できます。22 や 2 のように短く書いた値は、umask コマンドと同じく前を 0 で埋めて 022・002 として読みます。

新しいファイルは 666(rw-rw-rw-)、新しいディレクトリは 777(rwxrwxrwx)を基準にして、umask に立っているビットを外した値になります。

umask  ファイル  ディレクトリ
022    644       755
002    664       775
027    640       750
077    600       700
  • 022 — 多くの Linux と macOS の初期値です。グループとその他は、読むことはできても書き換えられません
  • 002 — グループのメンバーも書き換えられます。ユーザーごとに同じ名前のグループを作る設定の Linux では、一般ユーザーの初期値になっていることがあります
  • 027 — グループは読むだけ、その他には何も許しません
  • 077 — 自分以外には何も許しません

結果の「表で見る」ボタンを押すと、その権限が上の「パーミッション」の欄に入り、表・ls -l の表示・chmod コマンドで確かめられます。結果の下の「umask -S の表示」は、umask -S を実行したときと同じ、外されずに残る権限の書き方です。

umask の欄には 0〜7 の数字だけを、777 までの値で入力します。1022 のように 777 を超える値は、bash の umask でもエラーになります。

umask を変えるには、umask 027 のように実行します。その端末でそれ以後に作るものにだけ効きます。続けて使うには、zsh なら ~/.zshrc に書きます。bash は、ログインシェルとして起動したときは ~/.bash_profile を、そうでないときは ~/.bashrc を読むので、使い方に合うほうに書きます(~/.bash_profile から ~/.bashrc を読み込む設定になっていれば、~/.bashrc だけで足ります)。

umask は引き算ではありません

umask は、基準の権限から、umask に立っているビットを外す計算です。umask の各桁が偶数なら、基準から桁ごとに引き算した値と同じになりますが、奇数の桁があると違います。たとえば umask が 033 のとき、ファイルは 666 − 033 = 633 ではなく 644 になります。ファイルの基準の 666 にはもともと実行(x)が無いので、umask の実行のビットは何も外さないからです。ディレクトリは 744 になります。このような umask のときは、結果の下に注意が表示されます。

表示と違う権限になるとき

基準の 666・777 は、touch・エディタ・mkdir など、多くのプログラムが新しく作るときに求める権限です。次のような場合は、表示された値と違う権限になります。

  • コンパイラが作る実行ファイルは 777 を基準にするので、umask が 022 なら 755 になります
  • cp で新しく作ったコピーは、コピー元の権限から umask のビットを外した値になります
  • ssh-keygen が作る秘密鍵(600)のように、プログラムが自分で狭い権限を指定して作るファイルがあります
  • Linux で、ディレクトリに既定の ACL(setfacl -d で設定するもの)があると、その中に作るファイルには umask ではなく ACL が使われます

エラーが表示されるとき

  • 数値は 0〜7 の数字だけで… — 789 のように、8 か 9 が入っている場合です。パーミッションの各桁は 8進数なので、7 が最大です
  • 数値は 755 のような3桁か、4755 のような4桁で… — 100644 のように、5桁以上の数値を入力した場合です。stat コマンドや Git が表示する 100644 は、前にファイルの種類が付いた形です。後ろの3桁か4桁(644)を入力してください
  • 読み取れない形式です — rwxrwxrwxrwx のように文字が多い場合、rxw のように順序が違う場合、u+x のような「今の設定からの変更」を入力した場合などです。記号は、r w x の順に、付いていない位置を - にして9文字で入力します

エラーの間、結果は表示されません。表のマスは、最後に読み取れたパーミッションのままになります。

FAQ

755 と 644 はどう使い分けますか?

実行やディレクトリへの出入りが必要なら 755、いらなければ 644 です。ふつうのテキストや画像、HTML などのファイルは 644、ディレクトリと、実行するスクリプトやプログラムは 755 にするのが一般的です。

chmod 75 のように2桁で指定するとどうなりますか?

chmod は、足りない桁を前から 0 で埋めて、075(---rwxr-x)として扱います。所有者には何も許されなくなるので、意図した結果にならないことがほとんどです。このツールは、1桁・2桁の数値を入力の途中とみなして、結果を表示しません。

u+x や go-w のような指定は変換できますか?

できません。u+x(所有者に実行を足す)や go-w(グループとその他から書き込みを外す)は、今のパーミッションからの変更を表す書き方で、結果は元のパーミッションによって変わります。このツールは、最終的なパーミッション全体を扱います。

umask の計算はできますか?

できます。ページの下の「umask」の欄に入力すると、新しいファイルとディレクトリの権限が表示されます。umask が 022 なら、新しいファイルは 644、新しいディレクトリは 755 です。くわしくは「umask から新しいファイルの権限を出す」を見てください。

所有者よりグループやその他の権限が多いと、どうなりますか?

077 や 057 のような設定です。所有者には所有者の欄だけが使われ、グループやその他の欄は見られません。そのため、グループのメンバーにできる操作が、所有者にはできなくなります。このツールは、そのような設定のときに注意を表示します。

ACL や拡張属性は扱えますか?

扱えません。ls -l の末尾の +(ACL あり)や @(macOS の拡張属性あり)は、読み飛ばすだけです。ACL が設定されているファイルでは、ここに表示される9文字だけでは実際に許される操作が決まりません。getfacl(Linux)や ls -le(macOS)で確かめてください。

Windows でも使えますか?

このツールが扱うのは、Linux、macOS などの Unix 系 OS のパーミッションです。Windows のファイルのアクセス許可は仕組みが違います。WSL の中のファイルや、Linux のサーバーへ FTP・SFTP で送るファイルには、このページの内容が当てはまります。

入力した内容は保存されますか?

いいえ。変換はすべてブラウザの中で行われ、入力が外部へ送られることも、保存されることもありません。ページを再読み込みすると、例の 755 と umask の 022 に戻ります。

種別
ユーティリティ
カテゴリ
開発者向け
タグ
chmod
permission
linux
unix
octal
umask
calculator
developer
  • サブネット計算ツール(IPv4・CIDR)

    IPアドレスとプレフィックス長(/24 など)またはサブネットマスクから、ネットワークアドレス・ブロードキャストアドレス・ホストに使える範囲と台数・ワイルドカードマスクを計算します。必要なホスト数からプレフィックス長を決めることや、ネットワークを同じ大きさのサブネットに分割した一覧を出すこともできます。2進数での表記と、プライベートアドレスかどうかも表示します。

    ユーティリティ開発者向けipipv4subnetcidrnetmasksubnettingnetworkcalculatordeveloper
  • カラーコード変換ツール

    HEX・RGB・HSL のカラーコードを相互に変換し、HSV・CMYK・OKLCH の表記も表示。カラーピッカーやプレビューで確認でき、白・黒や指定した文字色とのコントラスト比(WCAG)も分かります。

    ユーティリティ開発者向けcolorhexrgbhslhsvcmykoklchcontrastcontrast-checkerwcagconverterdeveloper
  • XML整形・圧縮ツール

    1行につながったXMLを、字下げをつけた読みやすい形に整形します。字下げはスペース2つ・4つ・タブから選べ、1行に圧縮することもできます。タグの閉じ忘れなどの誤りは、行と位置を示します。XPathの式で要素や属性を抜き出すこともできます。ブラウザ内で完結。

    ユーティリティ開発者向けxmlformatterminifypretty-printvalidatorxpathdeveloper