パーミッションとchmodの基本:ファイルへのアクセス権を理解する
LinuxやUnix系のシステムを操作していると、ファイルやディレクトリにアクセスできない、変更できないといった問題に直面することがあります。これは、多くの場合 パーミッション(アクセス権) が原因です。パーミッションは、ファイルやディレクトリに対して誰がどのような操作(読み込み、書き込み、実行)をできるかを細かく設定する仕組みです。
パーミッションの表示と確認方法

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

私たちは、お客さまが私たちのウェブサイトをどのように使用するのかを理解し、お客さまの体験を改善するために Cookie を使用しています。 閲覧を続けると Cookie の使用に同意したことになります。
拒否した場合、このウェブサイトにアクセスしてもお客さまの情報は追跡されません。 情報を追跡しない設定を記憶するために、ウェブブラウザで 1 つだけ Cookie が使用されます。