KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

  1. KENスクール TOP >
  2. KENスクールブログ > ネットワーク > Linuxのアクセス権 その1

ネットワーク

Linuxのアクセス権 その1

当記事は、Linuxにおけるアクセス権の考え方と設定方法についてご紹介します。

 

アクセス権の基本

すべてのファイルやディレクトリには、どのユーザーに対してどのような操作が行えるのかという、アクセス権(パーミッション)が設定されます。

アクセス権を正しく設定することにより、システムのセキュリティを確保し、安全に運用することができるようになります。

 

アクセス権を確認するには、「ls」コマンドに「-l」オプションを付与して実行します。

確認対象がディレクトリである場合は、下記のように「-d」オプションを併用するとよいでしょう。

実行結果の左にある、「rw-rw-r–」や「rw-r—r–」などと表示されている部分がアクセス権を表しており、左から3文字ずつ「所有者」「所有グループに属するユーザー」「その他のユーザー」の順に設定されています。

なお、最後にある「.」はSELinux環境下で管理されるファイルであることを表しています。

一番左側の1文字はファイルタイプを示しており、「-」は通常ファイル、「d」はディレクトリ、「l」はリンクを表します。

それぞれのフィールドに「r」「w」「x」を指定することにより、ファイルあるいはディレクトリに対して、誰が何を行うことができるかを設定することができます。

 

基本的なアクセス権の種類には、「読み取り可能」「書き込み可能」「実行可能」の3種類があります。 ただし、ファイルとディレクトリでは、同じアクセス権でも意味が異なることに注意してください。

上記の例3では、「sample.txt」ファイルのアクセス権が次のようになっていることがわかります。

・所有者(ken-nw)は、「読み取り」と「書き込み」が許可。

・所有グループ(Development)は、「読み取り」のみ許可。

・その他のユーザーは、アクセス不可。

 

アクセス権の設定

特殊なアクセス権も含め、すべてのアクセス権は「モードビット」とよばれる12個の数値で表現されます。
※特殊なアクセス権はLinuxのアクセス権その2で紹介予定です。

モードビットは「読み取り(r)」「書き込み(w)」「実行(x)」の3つの権限を、「特殊なアクセス権」、「所有者」、「所有グループ」、「その他のユーザー」の4つに対して割り当てられ、各権限のビットフラグが「0」であれば無効、「1」であれば有効となります。

モードビットの2進数と8進数は、下記のように対応付けられており、アクセス権を変更する際には各カテゴリーの8進数を指定して行います。

また、特殊なアクセス権を指定する場合は、通常のアクセス権3桁の左側に付与して表わします。 「SUID」の場合は「4000」、「SGID」は「2000」、「スティッキービット」は「1000」を、それぞれ付与します。

 

デフォルトのアクセス権

ファイルやディレクトリを新規に作成すると、デフォルトのアクセス権が適用されます。

例えばrootユーザーの場合「644(rw-r–r–)」や、「755(rwxr-xr-x)」といったアクセス権になります。

このアクセス権は、ユーザーごとに設定された「umask値」により決定されます。

umaskの値は3桁もしくは4桁の8進数で表すことができ、rootユーザーのデフォルトのumask値は「0022」、一般ユーザーのumask値は「0002」となっています。

 

デフォルトのumask値の確認や変更を行うには、「umask」コマンドを使用します。

「umask」コマンドをオプションなしで実行した場合は、現在のumask値が表示されます。

最近のLinuxディストリビューションでは、umask値が4桁で表示されるようになっています。 以前のバージョンのLinuxディストリビューションによっては、3桁で表示される場合もあります。

上記の例2では、umask値を「027」に変更したことにより、新規ファイルのアクセス権が「rw-rw-r–」から「rw-r—–」に変わって作成されることが確認できます。

 

アクセス権の変更

ファイルやディレクトリに対するアクセス権を変更するには、「chmod(CHange MODe)」コマンドを使用します。

なお、アクセス権の変更は、ファイルの所有者もしくは、rootユーザーだけが行えます。

「chmod」コマンドによるアクセス権を変更する場合、アクセス権の指定方法として2種類があります。 1つ目は前述のモードビットの8進数を使った方法で、2つ目は記号を使った方法です。

 

モードビットによるアクセス権の変更

モードビットの数値を指定してアクセス権を変更する場合は、次の例のように「chmod」コマンドの後に変更後のアクセス権を記述します。

この例では、変更前のアクセス権が「rw-rw-r–」であった「file100」に対し、「rw-r–r–」に変更するために、モードビットを「644」と指定しています。 これにより、「グループ」のアクセス権から「書き込み(w)」の権限を解除しています。

上記例の①では、「所有者」と「グループ」に対して「rwx」を、「その他のユーザー」には「—」を指定しています。

また②では、「所有者」に対して「rwx」を、「グループ」と「その他のユーザー」には「r-x」を、さらに「SUID」を指定しています。

 

記号によるアクセス権の変更

アクセス権を変更するもう1つの方法は、「ユーザークラス」とよばれるユーザーを表現する記号と、「権限に対する操作」を「演算子」で指定して行うものです。

指定可能な「ユーザークラス」、「演算子」および「権限に対する操作」は、次のようになっています。

この例では、変更前のアクセス権が「rw-rw-r–」であった「file200」に対し、「rwxrw-r–」に変更するために、記号として「u+x」を指定しています。 これにより、「所有者」のアクセス権に「実行(x)」の権限を追加しています。

上記例の①では、「グループ」と「その他のユーザー」に対して、「書き込み(w)」の権限を追加しています。

②では、「その他のユーザー」に対して、権限が「rwt」となるよう指定しています。

 

いかがでしたでしょうか。

ぜひお勉強の際にお役立て下さい。

この記事に関連する講座

Linuxを使いこなし、スキル証明の資格も取得!

詳しくはこちら