Linux管理・運用の基本
システム管理者のための実践ガイド
システム管理者のための実践ガイド
ファイルやディレクトリのパーミッションを確認するには、lsコマンドに-lオプションを付けて実行します。
コマンド例
ls -l my_file.txt
出力例
-rw-r--r-- 1 user group 0 Jul 12 09:00 my_file.txt
この出力の最初の10文字がパーミッションを表しています。
| 文字列 | 意味 |
|---|---|
| 1文字目 | ファイルタイプ (-:ファイル, d:ディレクトリなど) |
| 2-4文字目 | 所有者(Owner)の権限 |
| 5-7文字目 | グループ(Group)の権限 |
| 8-10文字目 | その他のユーザー(Others)の権限 |
各権限は、r(読み込み)、w(書き込み)、x(実行)で表され、権限がない場合はハイフン(-)が表示されます。上記の例では、「所有者は読み込みと書き込み、グループとその他のユーザーは読み込みのみ可能」という状態を示しています。
パーミッションを変更するには、chmodコマンドを使用します。chmodコマンドには、記号モードと数値モードの2つの指定方法があります。
各権限に数値を割り当て、それらを合計して指定します。
| 権限 | 数値 |
|---|---|
| 読み込み(r) | 4 |
| 書き込み(w) | 2 |
| 実行(x) | 1 |
| なし(-) | 0 |
例えば、「所有者は読み書き実行、グループは読み書き、その他は読み込みのみ」にしたい場合、それぞれ 7 (4+2+1)、6 (4+2)、4 (4) となり、chmod 764 ファイル名 と指定します。
コマンド例
chmod 755 my_script.sh
この例では、my_script.shに対し、「所有者は読み書き実行、グループとその他のユーザーは読み込みと実行が可能」というパーミッションを設定しています。WebサーバーでCGIスクリプトなどを実行可能にしたい場合によく使われる設定です。
誰の、どのような権限を、どうする(追加、削除、設定)かを記号で指定します。
| 対象 | 記号 |
|---|---|
| 所有者 | u |
| グループ | g |
| その他 | o |
| 全員 | a |
| 操作 | 記号 |
|---|---|
| 追加 | + |
| 削除 | - |
| 設定 | = |
コマンド例
chmod u+x my_script.sh
この例は、my_script.shの所有者に実行権限を追加します。
./my_script.sh: Permission deniedのようなエラーが出た場合、そのスクリプトに実行権限がない可能性があります。
chmod +x my_script.sh
と実行するか、より厳密にパーミッションを設定するなら
chmod 755 my_script.sh
とします。これにより、スクリプトが実行可能になります。
特定のファイルを自分だけが読み書きできるようにしたい場合は、
chmod 600 private_file.txt
と設定します。これで、所有者以外のユーザーからは一切アクセスできなくなります。
パーミッションの適切な設定は、システムのセキュリティと安定運用において非常に重要です。
この記事が、パーミッションとchmodコマンドの理解を深める一助となれば幸いです。
ご覧いただきありがとうございました。