LinuCレベル1 Version 4.0 101試験の例題と解説
104.5 ファイルのパーミッションと所有者の管理
■トピックの概要
このトピックの内容は以下の通りです。
<104.5 ファイルのパーミッションと所有者の管理>
重要度 3
<説明>
適切なパーミッションと所有者権限を使用して、ファイルへのアクセスを制御できる。
<主要な知識範囲>
・通常ファイル、スペシャルファイル、およびディレクトリに対するアクセスパーミッションを管理する
・SUID、SGID、スティッキービットなどのアクセスモードを使用して、セキュリティを維持する
・ファイル作成マスクの変更方法を把握する
・グループフィールドを使用して、グループメンバーがファイルにアクセスできるようにする
<重要なファイル、用語、ユーティリティ>
・chmod
・umask
・chown
・chgrp
■例題
新規にファイルを作成する際、作成時点でファイルの所有グループに読み取り権と書き込み権がある状態にするための設定方法を選択してください。
1. umask 006
2. umask 660
3. chmod 660
4. chmod g+rw
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「1. umask 006」です。
読み込み権(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進数での表現など、どの方法でも設定ができるようにしておきましょう。
■例題作成者
株式会社デージーネット 技術部技術管理課 森久恵