# chmod 計算機

Unix のファイル権限を8進数(755)、文字(rwxr-xr-x)、ls -l、chmod の記述の間で変換します。チェックボックスと setuid・setgid・sticky ビット付き。

https://codeknife.dev/ja/chmod-keisanki/

## できること

Unix のファイル権限を8進数(`755`)、権限の文字(`rwxr-xr-x`)、`ls -l` の行、`chmod` の記述(`u=rwx,g=rx,o=rx`)の間で変換します。チェックボックスを選ぶと、setuid・setgid・sticky ビットを含むすべての表記が更新されます。

## 使い方

1. 任意の表記でモードを入力するか、チェックボックスを選びます。
2. すべての表記で確認し、どれかを編集します。
3. 変換した値をコピーするか、ファイルの種類を選んでディレクトリやリンクの `ls -l` の行を確認します。

## 例

`755` は `rwxr-xr-x` で、所有者は読み書きと実行ができ、それ以外は読み取りと実行ができます。`644` はファイルの標準的なモード `rw-r--r--`、`1777` は `/tmp` のような共有ディレクトリの `rwxrwxrwt` です。

## 知っておくと便利なこと

- 各桁は所有者、グループ、それ以外の全員について、読み取り4、書き込み2、実行1を足したものです。先頭に4桁目を付けると setuid 4、setgid 2、sticky 1 を加えます。
- 文字では特殊ビットが実行の位置に入ります。setuid と setgid は `s`、sticky は `t` です。大文字の `S` や `T` は、実行ビットなしで特殊ビットが立っていることを示します。
- `u=rwx,g=rx,o=rx` のような記述は各クラスをそのまま設定し、どの記述にも現れないクラスの権限はなしになります。`u+x` のような相対的な形式は、ファイルの現在のモードに依存するため、ここでは読み取りません。

## chmod の数字は何を表しますか？

各桁は1つのクラスについて、読み取り(4)、書き込み(2)、実行(1)を足したものです。1桁目が所有者、2桁目がグループ、3桁目がそれ以外の全員です。そのため 755 は、所有者が読み書きと実行でき、他は読み取りと実行ができるという意味です。先頭に4桁目を付けると setuid(4)、setgid(2)、sticky(1)を加えられます。

## よくある質問

### setuid、setgid、sticky ビットとは？

setuid と setgid を付けると、プログラムは起動した人ではなく所有者またはグループの権限で動きます。ディレクトリでは setgid により新しいファイルがグループを引き継ぎ、sticky ビット(/tmp など)により所有者だけがファイルを削除できます。文字では実行の位置の s や t で表され、大文字の S や T は実行ビットが立っていないことを示します。

### 777 がよくないのはなぜですか？

システムのすべてのユーザーがそのファイルを変更したり置き換えたりできてしまいます。所有者には必要な権限を、グループやその他には必要なアクセスだけを与えましょう。スクリプトなら通常 755、非公開のファイルなら 600 です。

### このツールは入力をどこかに送信しますか？

いいえ。すべてブラウザ内で処理されます。入力した内容が当社のサーバーに送られることはありません。