パーミッション
SSHでサーバーに入れたあと、設定ファイルを書き換えようとしたら「Permission denied」と表示されました
パーミッションは、ファイルやディレクトリ(フォルダ)ごとに決めた「誰が・何をしてよいか」の設定です。
「Permission denied」は「許可がないので断られた」という意味です。
- パーミッションは、ファイルやディレクトリ(フォルダ)ごとに「だれが・何をしてよいか」を決めた設定
- 「だれが」は3つに分かれる:所有者(持ち主)/グループ(仲間)/その他(それ以外の全員)
- 「何を」は3つ:読む(r)/書く(w)/実行する(x)
- 数字でも書ける(r=4、w=2、x=1 を足す)
身近な例えで理解する
お店の勤務シフト表は、店長が作って書き換えます。スタッフは見て自分の出勤日を確かめますが、書き換えはしません。バックヤードに貼ってあるので、お客さんは見られません。
- 店長所有者(ファイルの持ち主)
- スタッフグループ(持ち主の仲間として登録された人たち)
- お客さんその他(それ以外の全員)
- 店長は書き換えられる/スタッフは見るだけ/お客さんは見られない所有者は読み書きできる/グループは読むだけ/その他は何もできない
スタッフがシフト表を勝手に書き換えようとしたら止められます。これが「Permission denied」にあたります。
ちょっと確認
これはどういう意味ですか?
例えを外して、実際のしくみ
「誰が」は3つ
「何を」も3つ
読む(r)、書く(w)、実行する(x)です。x は、ファイルならプログラムとして動かす許可、ディレクトリなら中に入る(中のファイルにたどりつく)許可です。ls -l で見ると -rw-r--r-- のように表示されます。先頭の1文字はファイルの種類(ふつうのファイルは「-」、ディレクトリは「d」)です。そのあとの9文字が3文字ずつ、左から所有者・グループ・その他の許可です。使えない許可は「-」になります
user2@vm:~$ ls -l work
total 12
-rwxr-xr-x 1 user2 user2 23 Oct 28 17:48 hello.sh
drwxrwxr-x 2 user2 user2 4096 Oct 28 17:48 logs
-rw-rw-r-- 1 user2 user2 7 Oct 28 17:48 memo.txthello.sh は -rwxr-xr-x なので、所有者は読む・書く・実行するができ、グループとその他は読む・実行するだけです。logs は先頭が d なので、ディレクトリです。
数字でも書ける
r=4、w=2、x=1 を足した数字を、所有者・グループ・その他の順に3つ並べます。rw-r--r-- は 6・4・4 で 644、rw------- は 600、r-------- は 400 です。パーミッションを変えるコマンドは chmod です(例:chmod 400 my-key.pem)
このページのまとめ
- パーミッション
- ファイルやディレクトリごとの「誰が・何をしてよいか」の設定
- 所有者/グループ/その他
- 持ち主/仲間として登録された人たち/それ以外の全員
- r / w / x
- 読む(4)/書く(2)/実行する・ディレクトリに入る(1)
- Permission denied
- 必要な許可がないので断られた、という意味
先輩のひとことの意味
先輩「Permission denied? そのファイルのパーミッション見てみて。ls -l で分かるよ」
「断られたのは、そのファイルに対して、あなたに書く許可がないからかもしれない。ls -l で、持ち主は誰か、所有者・グループ・その他にそれぞれ何が許されているかを確かめて」という意味です。設定ファイルは root の持ち物で、一般ユーザーは読むだけ、ということがよくあります。
練習問題で確かめる
所有者が root で、パーミッションが(先頭の種類の1文字を除いて)rw-r--r-- のファイルがあります。所有者でもなく、そのグループにも入っていない一般ユーザーにできることはどれですか?
参考資料
ご意見・「これで例えて!」を募集しています
ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。
- 説明してほしいITの言葉
- 例えてほしい場面(部活・アルバイト・家事など)
- 分かりにくかったところ・間違いのご指摘
意見箱は準備中です。