Linux パーミッションの考え方
パーミッションはオーナー(u)、グループ(g)、その他(o)の順で評価する。
自分がオーナーではないファイルやディレクトリにアクセスする際には、上記の順でアクセス制御を受ける。
そのため、ディレクトリと同じグループに所属しているユーザーは、その他(o)のアクセス制御の設定に関わらず、ディレクトリに設定したグループのアクセス制御によって制御される。
今まで正しく理解していなかったので整理する。
例で考えるため、仮に以下のユーザーが存在するとする。
# useradd user1 -g hpusers # usreadd user2 -g hpusers
以下のディレクトリを作成する。
$ mkdir /home/user1/dir1 # chgrp hpusers /home/user1/dir1 # chmod 707 /home/user1/dir1
この時、hpusers グループに所属している user2 ユーザーは dir1 を見ることができるか?
言い換えれば以下のどちらになるのか?
- user2 は ohter の立場から dir1 を見ることができる。
- user2 は group の立場から dir1 を見ることができない。
答えは 2 となる。
$ su - test2 $ ls /home/user1/dir1 許可がありません。
このようにアクセス制御は、許可と拒否の両方が適用された時、難しく感じる時がある。
重要なポイントはまずオーナー、グループ、その他の順でアクセス制御が評価されるということ。