🔐 Unixパーミッション計算(chmod)
Unix/Linuxのファイルパーミッションを、読み/書き/実行のチェックから 755 などの8進数と rwxr-xr-x の記号表記に相互変換します。
入力
数値表記(8進数)
—
よく使う組み合わせ
※ 一般的なUnix/Linuxのファイルパーミッションの計算です。実行環境やファイルシステムにより挙動が異なる場合があります。
解説
Unix/Linuxのファイルには、誰がそのファイルを読み・書き・実行できるかを決める「パーミッション(権限)」が設定されています。本ツールは、この権限を『所有者(user)・グループ(group)・その他(other)』それぞれの読み(r)・書き(w)・実行(x)のチェックから、chmodコマンドで使う8進数(例 755)と、ls -l などで表示される記号表記(例 rwxr-xr-x)に相互変換します。サーバー作業やデプロイでパーミッションを設定するとき、数字と記号のどちらから考えても確認できます。
権限は対象ごとに、読み(read)を4、書き(write)を2、実行(execute)を1として、その合計を1桁の数字で表します。たとえば読み書き実行のすべてを許可すると4+2+1=7、読みと実行だけなら4+1=5です。これを所有者・グループ・その他の順に3桁並べたものがパーミッションの数値で、755なら所有者が7(rwx)、グループが5(r-x)、その他が5(r-x)、すなわち rwxr-xr-x を意味します。
記号表記は9文字で、左から3文字ずつが所有者・グループ・その他に対応します。各3文字はr・w・xの並びで、権限が無い位置はハイフン(-)になります。rw-r--r-- は644で、所有者だけが読み書きでき、グループとその他は読み取り専用です。ファイルとディレクトリでは実行(x)の意味が変わり、ディレクトリではxが「その中に入る(一覧・アクセスする)権限」を表すため、ディレクトリには755のようにxを付けるのが一般的です。
よく使う組み合わせには定番があります。644(rw-r--r--)は一般的なファイルの標準、755(rwxr-xr-x)は実行ファイルやディレクトリ、600(rw-------)はSSH秘密鍵など所有者だけがアクセスすべき機密ファイル、700(rwx------)は所有者専用のディレクトリなどに使われます。777(rwxrwxrwx)は誰でも読み書き実行できてしまうため、サーバー上ではセキュリティの観点から避けるのが基本です。本ツールでは早見表のボタンから、これらをワンタップで設定できます。
さらに、通常の3桁の前に付く特殊ビットにも対応しています。先頭の桁はsetuid(4)・setgid(2)・sticky(1)の合計で、たとえばsetuid付きの4755は記号表記で rwsr-xr-x となります。setuid/setgidは実行ファイルをその所有者・グループの権限で動かす仕組み、stickyは共有ディレクトリ(/tmp など)で自分のファイルだけを削除できるようにする仕組みです。記号表記では実行位置のxが、実行権があるときはs(stickyはt)、実行権がないときは大文字S(またはT)に置き換わります。
なお、本ツールが計算するのはあくまで一般的なUnix/Linuxのパーミッションのビット値です。実際のアクセス可否は、ACL(追加のアクセス制御リスト)、umask(新規作成時のデフォルト)、ファイルシステムの種類(FATやNTFSなど権限を持たない場合がある)、SELinuxやマウントオプションなどによって変わることがあります。数値と記号を確認する目安としてご利用いただき、重要な設定は実環境で ls -l などを使って確かめてください。
よくある質問
数字の755はどういう意味ですか?
3桁の各桁が左から所有者(user)・グループ(group)・その他(other)の権限を表します。各桁は読み4・書き2・実行1の合計で、7は4+2+1でrwx(読み書き実行すべて)、5は4+1でr-x(読みと実行)です。つまり755はrwxr-xr-x、所有者は全権限、グループとその他は読みと実行のみを意味します。
rwxr-xr-xを数字に直すには?
3文字ずつに区切り、rを4・wを2・xを1として足します。rwxは4+2+1=7、r-xは4+0+1=5なので、rwxr-xr-xは755になります。本ツールに記号を反映すると自動で数字と各チェックが更新されます。
644と755はどう使い分けますか?
644(rw-r--r--)は一般的なファイルの標準で、所有者だけが編集でき他は閲覧のみです。755(rwxr-xr-x)は実行ファイルやディレクトリに使い、所有者は全操作、他はディレクトリへの入場や実行ができます。ディレクトリは中に入るために実行(x)権限が必要な点がファイルと異なります。
先頭に付く4755の4は何ですか?
4桁表記の先頭は特殊ビットで、4がsetuid・2がsetgid・1がsticky(合計指定)を表します。setuid付きの4755はrwsr-xr-xとなり、実行時にファイル所有者の権限で動作します。記号表記では実行位置のxがs(実行権があるとき)またはS(実行権がないとき)に変わります。
600はどんなときに使いますか?
600(rw-------)は所有者だけが読み書きでき、他のユーザーは一切アクセスできません。SSHの秘密鍵など、他人に見られては困る機密ファイルに使う定番のパーミッションです。SSHは鍵のパーミッションが緩いと利用を拒否するため、600または400にします。
777にするのは危険ですか?
777(rwxrwxrwx)は誰でも読み書き実行できる状態で、サーバー上ではセキュリティ上おすすめしません。書き込みが必要な場合でも、所有者やグループを適切に設定して755や775などに絞るのが安全です。動かないときの安易な777は避けましょう。
この計算は実環境と必ず一致しますか?
一般的なUnix/Linuxのパーミッションのビット計算としては一致しますが、ACL・umask・ファイルシステム(FAT/NTFSなど)・SELinuxやマウントオプションによって実際の挙動が変わる場合があります。本ツールは数値と記号の相互変換の目安としてご利用ください。