chmod シンボリック・8進数変換ツール
chmod のモードを 8進表記とシンボリック表記の間で変換します。755 を u=rwx,g=rx,o=rx に変換したり、その逆を行ったりできます。u+x や go-w などの変更を現在のモードに適用し、setuid、setgid、スティッキービットにも対応しています。ls -l の文字列も読み取れます。ブラウザ上で動作します。
入力
変更前のモードです。u+x などのシンボリックモードで使用されます。+ と - によって、このモードに権限を追加または削除します。+w のように、u、g、o、a を指定しないシンボリックな変更を制限します。
出力
Readme
8進数形式とシンボリック形式の chmod モードとは?
chmod は、Linux、macOS、その他の Unix システムでファイルの権限を設定するコマンドで、2種類の表記方法に対応しています。755 のような 8進数形式では、所有者、グループ、その他のユーザーそれぞれに1桁を割り当て、読み取りを4、書き込みを2、実行を1で表します。一方、u=rwx,g=rx,o=rx のような シンボリック形式では、クラス(u は所有者、g はグループ、o はその他、a は全員)と権限(r、w、x)を名前で指定します。
シンボリック形式では、すべての権限を設定するのではなく、権限を変更することもできます。u+x は所有者に実行権限を追加し、go-w はグループとその他のユーザーから書き込み権限を削除し、g=u は所有者の権限をグループにコピーします。8進数形式では常にすべての権限を設定するため、変更後の8進数値は変更前のファイルモードによって異なります。
ツールの説明
このツールは、chmod モードを8進数形式とシンボリック形式の間で変換します。入力元と出力先の表記方法を選択するか、入力元を自動検出のままにしてください。755 を入力すると u=rwx,g=rx,o=rx に変換され、シンボリック形式を入力すると8進数値に変換されます。u+x や a+X のような変更の場合は、ファイルの現在のモードを入力すると、chmod の実行後に残るモードを確認できます。-rwxr-xr-x のような ls -l の権限文字列や、chmod コマンド全体を貼り付けることもできます。
例
| 8進数 | シンボリック形式 | ls -l | 一般的な用途 |
|---|---|---|---|
| 644 | u=rw,go=r |
-rw-r--r-- |
通常のファイル |
| 755 | u=rwx,go=rx |
-rwxr-xr-x |
スクリプト、プログラム、ディレクトリ |
| 600 | u=rw,go= |
-rw------- |
SSH キーなどの非公開ファイル |
| 2775 | u=rwx,g=rwxs,o=rx |
drwxrwsr-x |
グループを維持する共有ディレクトリ |
| 1777 | a=rwx,+t |
drwxrwxrwt |
/tmp などの共有一時フォルダー |
| 4755 | u=rwxs,go=rx |
-rwsr-xr-x |
passwd などのプログラム |
機能
- 8進数形式からシンボリック形式、シンボリック形式から8進数形式へ変換し、方向を切り替える入れ替えボタンを備えています
- 入力したモードの表記方法を検出するか、選択した表記方法から変換します
u+x、go-w、a=r,u+w、g=u、a+Xなどの相対的な変更を現在のモードに適用します- setuid、setgid、sticky bit(
s、t、4桁の8進数形式)に対応しています - シンボリック形式を完全な形式(
u=rwx,g=rx,o=rx)または簡略形式(u=rwx,go=rx)で出力します s、S、t、Tを含むls -lの権限文字列を読み取り、書き出しますsudo chmod -R 755 dirのような貼り付けたコマンドを受け付けます- モードが無効な場合、正確な文字位置を示します
動作の仕組み
8進数形式は最大4桁の数字として解釈されます。省略可能な最初の桁は setuid(4)、setgid(2)、sticky(1)を表し、残りの3桁は所有者、グループ、その他のユーザーの権限を表します。シンボリック形式は POSIX の文法に従って句ごとに解釈され、Linux 上の GNU chmod と同じ方法で現在のモードに適用されます。
+は権限を追加し、-は権限を削除し、=は権限を設定して、指定したクラスの残りの権限をクリアします。Xは、ディレクトリと、すでにいずれかのユーザーに実行権限が設定されているファイルにのみ実行権限を追加します。sはuとともに使用すると setuid を、gとともに使用すると setgid を設定します。tはo、a、またはクラス指定なしで使用すると sticky bit を設定します。+xのようにクラスを指定しない場合、umask によってブロックされているビットを除き、変更は全員に適用されます。- ディレクトリでは、
g-sのようにモードで指定しない限り、setuid と setgid は現在の状態のまま維持されます。
シンボリック形式の出力ではすべてのビットを明示的に設定するため、ファイルが変更前にどのモードであっても同じ結果になります。sticky bit は、GNU と BSD の chmod の両方がその形式を受け付けるため、独立した +t 句として記述されます。
ヒント
chmod -Rとともにa+Xを使用すると、すべてのファイルを実行可能にすることなく、ディレクトリを検索可能にできます。- GNU
chmodでは、ディレクトリに対するchmod 755は setgid を解除しません。解除するにはchmod 00755またはg-sを使用してください。 - Ansible や多くの設定ファイルでは、
0755のように先頭に0を付ける形式が必要です。「8進数を常に4桁で表示」をオンにすると、この形式を取得できます。 ls -lの文字列の後にある.または+は、SELinux コンテキストまたは ACL を示します。モードには表示されない ACL エントリを確認するには、getfaclを使用してください。