ファイルやディレクトリのパーミッションを確認するには、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
コマンドの理解を深める一助となれば幸いです。
ご覧いただきありがとうございました。