chmod 計算機
Unix のファイル権限を8進数(755)、文字(rwxr-xr-x)、ls -l、chmod の記述の間で変換します。チェックボックスと setuid・setgid・sticky ビット付き。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
const mode = parseInt('755', 8)
const letters = [...'rwxrwxrwx'].map((letter, i) => (mode & (0o400 >> i) ? letter : '-'))
console.log(letters.join(''))できること
Unix のファイル権限を8進数(755)、権限の文字(rwxr-xr-x)、ls -l の行、chmod の記述(u=rwx,g=rx,o=rx)の間で変換します。チェックボックスを選ぶと、setuid・setgid・sticky ビットを含むすべての表記が更新されます。
使い方
- 任意の表記でモードを入力するか、チェックボックスを選びます。
- すべての表記で確認し、どれかを編集します。
- 変換した値をコピーするか、ファイルの種類を選んでディレクトリやリンクの
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 です。
このツールは入力をどこかに送信しますか?
いいえ。すべてブラウザ内で処理されます。入力した内容が当社のサーバーに送られることはありません。