LinuCレベル1 101試験の例題と解説
1.02.1ファイルの所有者とパーミッション
今回は、LinuC 101試験の試験範囲から「1.02.1 ファイルの所有者とパーミッション」についての例題を解いてみます。
例題
新規にファイルを作成する際、作成時点でファイルの所有グループに読み取り権と書き込み権がある状態にするための設定方法を選択してください。
- 1. umask 006
- 2. umask 660
- chmod 660
- chmod g+rw
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「1. umask 006」です。
ファイルやディレクトリのパーミッションは、所有者(Owner)・所有グループ(Group)・その他(Other)のそれぞれのユーザに対して、
読み込み権(Readable)・書き込み権(Writable)・実行権(eXecutable)の権限を与えるかどうかで表されます。
ls -lでファイルやディレクトリを表示させると、そのファイルやディレクトリのパーミッションが確認できます。
-rwxr-----. 1 linuc lpi 152 8月 11 15:53 test.txt
最初の1文字はディレクトリかファイルかの表現で、2文字目から3文字区切りで、それぞれ所有者・所有グループ・その他の権限を表します。
権限は「rwx」の表記の他に、8進数でも表現ができます。
r = 4
w = 2
x = 1
として、必要な権限の数字を足した数値が、パーミッションとなります。
既存のファイルやディレクトリのパーミッションを変更したいときには、chmodコマンドで変更ができます。
chmodコマンドでは、新規作成の時点からパーミッションの指定をすることはできません。
「3. chmod 660」は、最後の引数に対象の既存ファイルかディレクトリの指定が必要ですので、コマンドの使い方としても適切ではありません。
同じく「4. chmod g+rw」も、引数にファイルの指定がありませんので、誤りです。
新規にファイルやディレクトリを作成したときに設定されるデフォルトのアクセス権は、umaskで設定されます。
ファイルは「666」から、ディレクトリは「777」からumask値を引いた値で、ファイルやディレクトリが作成されます。
「1. umask 006」としておくと、今回の問題は新規ファイルの作成ですので、「666」から「006」を引いた値である「660」でファイルが作成できます。
「660の権限のファイル」は「- rw- rw- ---」ですので、所有グループの読み取り権と書き込み権を持ったファイルを作成するにはこれが正解です。
「2. umask 660」とすると「666」から「660」を引いた値である「006」でファイルが作成されるため、「- --- --- rw-」となり誤りです。
umaskは引数無しで実行することで、現在のumask値を確認することができます。
パーミッションの設定を正しく行うことで、利用すべきユーザに必要な権限だけを設定することができるため、セキュリティ上非常に重要な概念です。
記号を用いた表現、8進数での表現など、どの方法でも設定ができるようにしておきましょう。