Linux は多くの資源をファイルに似たインターフェースで表し、各ファイルシステムオブジェクトにはアクセスを制御するメタデータがあります。そのメタデータを読めることは、ファイルとディレクトリを安全に扱うための基礎です。
パーミッション · レッスン 1
ファイルパーミッション
Linux のファイル種別と、所有者、グループ、その他の権限ビットを読み取る方法を学びます。
長形式一覧を読む
ls -l で長形式一覧を表示します。
$ ls -ld Desktop/
drwxr-xr-x 2 pete penguins 4096 Dec 1 11:45 Desktop/
最初のフィールド drwxr-xr-x は、ファイル種別を表す1文字と、権限を表す9文字を組み合わせたものです。この一覧では、pete が所有者、penguins がディレクトリに関連付けられたグループであることも分かります。
先頭文字はオブジェクトの種類を表します。一般的な値は次のとおりです。
-: 通常ファイルd: ディレクトリl: シンボリックリンク
ほかの特殊なファイル種別もあります。残り9文字がアクセス権限です。
d | rwx | r-x | r-x
drwxr-xr-x の先頭にある d は何を示しますか?
`r`、`w`、`x` を理解する
各権限トリプレットでは次の文字を使います。
rは読み取り権限を与えます。wは書き込み権限を与えます。xは実行権限を与えます。-はその権限がないことを示します。
通常ファイルでは、読み取りで内容へアクセスでき、書き込みで内容を変更でき、実行でカーネルがプログラムとして実行を試みられます。ファイル形式、インタープリター行、マウントオプション、別のセキュリティ制御が許可しなければ、実行権限があっても失敗する場合があります。
ディレクトリでは、意味がディレクトリエントリーに関係します。
- 読み取りでディレクトリ内の名前を一覧表示できます。
- 書き込みで、通常は実行権限と組み合わせてエントリーを作成・削除できます。
- 実行は検索権限とも呼ばれ、ディレクトリをたどり、名前でエントリーへアクセスできます。
ファイルの削除は主に、ファイル自身の書き込みビットではなく、親ディレクトリの権限によって決まります。
ディレクトリの実行権限が主に許可するものは何ですか?
所有者、グループ、その他のクラス
9個のモード文字は、決まった順序の三つのトリプレットを構成します。
- 所有者: プロセスの実効ユーザー ID がファイル所有者と一致するときに使う権限。
- グループ: 該当するプロセスのグループ ID がファイルのグループと一致するときに使う権限。
- その他: 前のどちらのクラスにも一致しないときに使う権限。
カーネルは該当する一つのクラスを選び、最も寛容な結果を得るために三つのトリプレットを合算することはありません。アクセス制御リスト、マウントオプション、ケーパビリティ、強制アクセス制御などの追加機構も、最終的な判断へ影響します。
例では、所有者のトリプレットが rwx、グループとその他が r-x です。所有者はディレクトリを読み取り、書き込み、検索できます。グループとその他は読み取りと検索ができますが、通常のモードビットではディレクトリを通じてエントリーを作成・削除できません。
ファイル種別文字の後に、三つの権限トリプレットはどの順序で並びますか?
drwxr-xr-x でグループクラスが持つ通常の権限はどれですか?
隔離された環境で概念を定着させるには、Linux のユーザー、グループ、ファイルパーミッションラボを利用してください。モードの読み取り、所有権と権限の変更を練習できます。
レッスン完了
ファイルパーミッション を完了しました
Linux の長形式一覧にある基本的な権限フィールドを解釈できるようになりました。
ファイル種別文字と9個の権限ビットを分ける。
対象がファイルかディレクトリかに応じて
r、w、xを読む。モードを所有者、グループ、その他のトリプレットへ分ける。
トリプレットを
ls -lが示す所有者とグループへ関連付ける。