LPIC-1 Exam 101 無料問題 9 / 10 ・ 分野4: Devices, Linux Filesystems, Filesystem Hierarchy Standard
ls -l で -rwxr-x--x と表示されるファイル run.sh に、chmod g+w,o=r run.sh を実行した。実行したあとのパーミッションを8進で表したものとして正しいものはどれか。
- 775
- 724
- 725
- 774
正解と解説を見る
正解: D
正解の理由
もとの -rwxr-x--x は、所有者 rwx(4+2+1=7)・グループ r-x(4+1=5)・その他 --x(1)で 751 である。chmod の記号の指定で、+ は選んだビットをもとのビットに足し、= は選んだビットだけにして書かれていないビットを外す。g+w でグループは r-x に w が加わって rwx(7)になり、o=r でその他は r だけ(4)になる。所有者は触れていないので 7 のまま。結果は -rwxrwxr-- で、8進では 774 になる。
違う選択肢
「775」… グループの 7 は合っている。o=r は「その他」を r だけにする指定で、もとの x は外れる。o+r なら x が残って r-x(5)になるが、= なので r--(4)になる。
「724」… その他の 4 は合っている。g+w はグループのもとの r-x に w を足す指定で、もとのビットは残る。g=w なら -w-(2)になるが、+ なので rwx(7)になる。
「725」… 2か所とも違う。グループは + なのでもとの r-x に w が足されて 7、その他は = なので x が外れて r だけの 4 になる。725 は + を = として、= を + として計算した値である。
計算の手順
記号の指定はカンマで区切って並べられ、左から順に当たる。8進に直すときは、各3文字の組ごとに r=4・w=2・x=1 を足す。+ と - はもとの値を足し引きし、= はもとの値を捨てて置き換える、と覚えると取り違えにくい。8進で指定したとき(chmod 774 run.sh)は、どの組もその値に置き換わる。