Chmod 計算器:Unix ファイル権限を深く理解する
Unix および Linux ベースのシステムでは、ファイル権限はセキュリティとシステム管理の極めて重要な側面です。chmod コマンド(change mode)は、ファイルやディレクトリを誰が読み取り、書き込み、または実行できるかを管理するためのツールです。システム自体は論理的ですが、初心者や一部の経験豊富な開発者にとっても、数値や記号による表現は混乱を招くことがあります。
このガイドでは、Unix 権限の仕組み、8 進数モードと記号モードの違いを説明し、包括的なリファレンス表を提供します。
Unix 権限の基礎
Linux システムのすべてのファイルとディレクトリには、3 つのユーザー・クラスに対して 3 種類の権限があります。
3 つのクラス
- ユーザー (u): ファイルの所有者。
- グループ (g): ファイルが属するグループのメンバー。
- その他 (o): システム上の他のすべてのユーザー。
3 つの権限
- 読み取り (r): ファイルの内容を表示したり、ディレクトリの内容をリストしたりする権限。
- 書き込み (w): ファイルを変更したり、ディレクトリ内のファイルを追加・削除したりする権限。
- 実行 (x): ファイルをプログラムやスクリプトとして実行したり、ディレクトリに移動したりする権限。
8 進数(数値)モードの解説
8 進数モードでは、権限を表すために 3 つの数字を使用します。各数字は、そのクラスの権限値の合計です。
- 読み取り (r) = 4
- 書き込み (w) = 2
- 実行 (x) = 1
- 権限なし = 0
数字の計算方法:
読み取り (4) + 書き込み (2) + 実行 (1) = 7(フル権限)読み取り (4) + 書き込み (2) = 6(読み取りと書き込み)読み取り (4) + 実行 (1) = 5(読み取りと実行)読み取り (4) = 4(読み取りのみ)
例:chmod 755
- ユーザー:7 (4+2+1) -> rwx
- グループ:5 (4+1) -> r-x
- その他:5 (4+1) -> r-x
記号モードの解説
記号モードでは、文字を使用してクラスと権限を表します。
- クラス:
u(ユーザー),g(グループ),o(その他),a(すべて) - 操作:
+(追加),-(削除),=(正確に設定) - 権限:
r,w,x
例:chmod u+x script.sh
これにより、ファイルの所有者に実行権限が追加されます。
Chmod リファレンス表
| 8 進数 | 記号 | 説明 | 主なユースケース |
|---|---|---|---|
| 777 | a+rwx |
全員がすべてを実行可能 | 公開フォルダ(注意して使用してください!) |
| 755 | u=rwx,go=rx |
所有者はすべて可能、他は読み取り/実行可能 | Web サーバーのディレクトリ、スクリプト |
| 644 | u=rw,go=r |
所有者は読み書き可能、他は読み取りのみ可能 | 通常のテキストファイル、HTML ファイル |
| 600 | u=rw,go= |
所有者のみ読み書き可能 | 秘密鍵、SSH 鍵 |
| 400 | u=r,go= |
所有者のみ読み取り可能 | 機密性の高い設定ファイル |
| 700 | u=rwx,go= |
所有者のみすべてを実行可能 | プライベートなスクリプトやディレクトリ |
一般的なユースケースと例
スクリプトを実行可能にする
chmod +x my-script.sh
# または
chmod 755 my-script.sh
SSH 秘密鍵の保護
SSH 鍵は、権限が広すぎると動作しません。所有者のみに制限する必要があります。
chmod 600 ~/.ssh/id_rsa
再帰的に権限を変更する
ディレクトリとそのすべての内容の権限を変更する場合:
chmod -R 755 /path/to/directory
特殊権限:SUID、SGID、およびスティッキービット
高度な Linux システムでは、特殊権限のために 4 つ目の先頭の数字を使用します。
- SUID (4): ファイルが実行されるとき、プロセスは所有者の権限で実行されます。
- SGID (2): プロセスはグループの権限で実行されるか、ディレクトリ内に作成されたファイルがグループを継承します。
- スティッキービット (1): ディレクトリ内のファイルの所有者のみが、そのファイルを削除または名前変更できます(通常
/tmpで使用)。
例:chmod 1777 /tmp (全員にフルアクセスを許可しますが、自分のファイルのみ削除可能です)。
よくある質問 (FAQ)
「755」とは正確にはどういう意味ですか?
所有者が読み取り、書き込み、および実行 (4+2+1=7) の権限を持っていることを意味します。グループとその他は読み取りと実行 (4+1=5) の権限を持っています。
なぜ 777 は危険だと考えられているのですか?
777 は、システム上のあらゆるユーザーがあなたのファイルを変更したり削除したりすることを許可します。Web 環境では、攻撃者が悪意のあるスクリプトをアップロードして実行することを許してしまう可能性があります。
ファイルの現在の権限を確認するにはどうすればよいですか?
ターミナルで ls -l コマンドを使用します。-rwxr-xr-x のような文字列が表示されます。最初の文字はファイルタイプ、次の 9 文字が権限を表します。
結論
ファイル権限を理解することは、安全で機能的な Linux 環境を維持するために不可欠です。644 や 755 などの数値コードが標準ですが、オンライン計算器を使用することで、各コードが何を表しているかを正確に視覚化できます。
正しい権限コードをすぐに見つける必要がありますか?当社の Chmod 計算器(近日公開予定)を使用して、ニーズに合わせた完璧なコマンドを自信を持って生成してください。