Oh MyUtils

Chmod計算機 - Unixファイルパーミッション計算 オンライン

インタラクティブなマトリックスでLinux/Unixファイルパーミッションを計算。8進数(755, 644)とシンボリック(rwxr-xr-x)間のchmod変換。

パーミッショングリッド

読み取り (r)書き込み (w)実行 (x)#
所有者 (u)
7
グループ (g)
5
その他 (o)
5
特殊
SetUID
SetGID
Sticky

chmodコマンド

$ chmod 755 filename

セキュリティ

注意

その他に実行権限またはグループに書き込み+実行権限があります

ls -l プレビュー

$ ls -l -rwxr-xr-x 1 user group 4096 Feb 13 10:00 filename

一般的なプリセット

よくある質問

chmodとは何ですか?何をしますか?

chmod(change mode)は、Unix/Linuxでファイルやディレクトリのアクセス権限を変更するコマンドです。誰がファイルを読み取り、書き込み、実行できるかを制御します。権限はファイル所有者(ユーザー)、グループ、その他のすべてのユーザーの3つのクラスに対して設定されます。

このchmod計算機ツールはどのように使用しますか?

パーミッショングリッドのチェックボックスをクリックして、所有者、グループ、その他の個別の権限を切り替えます。または、数値入力フィールドに8進数値(例:755)を入力します。ツールは8進数表記、シンボリック表記、ビジュアルグリッド間の変換を即座に行います。

データは安全ですか?サーバーに送信されますか?

完全に安全です。このchmod計算機はクライアントサイドJavaScriptを使用して100%ブラウザ内で実行されます。データがサーバーに送信されることは一切ありません。

8進数表記とシンボリック表記の違いは何ですか?

8進数表記は数字を使用します(例:755)。各桁はそれぞれ所有者、グループ、その他の権限を表します。各桁は読み取り(4)、書き込み(2)、実行(1)の合計です。シンボリック表記は文字を使用します(例:rwxr-xr-x)。r=読み取り、w=書き込み、x=実行、-=権限なしを意味します。

setuid、setgid、sticky bitは何をしますか?

これらはファイルやディレクトリの動作を変更する特殊な権限ビットです。SetUID(4000)は実行ファイルをファイル所有者の権限で実行させます。SetGID(2000)はファイルをグループの権限で実行させます。Sticky Bit(1000)はディレクトリ内のファイルを所有者のみが削除できるようにします。

Webサーバーファイルにはどのchmod値を使用すべきですか?

ほとんどのWebサーバーでは:通常のファイルには644(rw-r--r--)、ディレクトリと実行可能なスクリプトには755(rwxr-xr-x)を使用します。本番サーバーでは777を絶対に使用しないでください。

なぜchmod 777は危険ですか?

chmod 777はすべてのユーザーに読み取り、書き込み、実行の権限を与えます。これはどのユーザーやプロセスもファイルを変更・削除でき、どの実行ファイルも誰でも実行できることを意味します。Webサーバーでは攻撃者が悪意のあるコードを注入する可能性があります。

コード例

// Unix file permission calculator in JavaScript

const PERM = {
  OWNER_R: 0o400, OWNER_W: 0o200, OWNER_X: 0o100,
  GROUP_R: 0o040, GROUP_W: 0o020, GROUP_X: 0o010,
  OTHER_R: 0o004, OTHER_W: 0o002, OTHER_X: 0o001,
  SETUID:  0o4000, SETGID: 0o2000, STICKY: 0o1000,
};

function octalToSymbolic(octal) {
  const chars = [];
  chars.push(octal & PERM.OWNER_R ? 'r' : '-');
  chars.push(octal & PERM.OWNER_W ? 'w' : '-');
  if (octal & PERM.SETUID) {
    chars.push(octal & PERM.OWNER_X ? 's' : 'S');
  } else {
    chars.push(octal & PERM.OWNER_X ? 'x' : '-');
  }
  chars.push(octal & PERM.GROUP_R ? 'r' : '-');
  chars.push(octal & PERM.GROUP_W ? 'w' : '-');
  if (octal & PERM.SETGID) {
    chars.push(octal & PERM.GROUP_X ? 's' : 'S');
  } else {
    chars.push(octal & PERM.GROUP_X ? 'x' : '-');
  }
  chars.push(octal & PERM.OTHER_R ? 'r' : '-');
  chars.push(octal & PERM.OTHER_W ? 'w' : '-');
  if (octal & PERM.STICKY) {
    chars.push(octal & PERM.OTHER_X ? 't' : 'T');
  } else {
    chars.push(octal & PERM.OTHER_X ? 'x' : '-');
  }
  return chars.join('');
}

// Example usage
const perm = 0o755;
console.log(`Octal: ${perm.toString(8)}`);
console.log(`Symbolic: ${octalToSymbolic(perm)}`);
console.log(`Command: chmod ${perm.toString(8)} myfile.sh`);

関連ツール