差分

移動先: 案内検索

ユーザ権限とアクセス制御

1,878 バイト追加, 2013年8月30日 (金) 22:34
/* ユーザIDとグループID */
=== ユーザIDとグループID ユーザIDとグループIDによるアクセス制御 ===
オペレーティングシステムの中での利用権限を意味するのがユーザIDです。オペレーティングシステムの内部では、ユーザは名前で管理されているのではなくユーザID(UID)で管理されています。たとえばファイルには所有者たとえばファイルにユーザ(Owner所有者)が設定されていますが、が設定されていますが、その所有者情報とはファイルの情報(ディレクトリ情報のなかにあるメタ情報)に付加されているユーザIDのことです。その所有者情報とはユーザIDのことです。また、プロセスが動作している時には、いずれかのユーザIDとグループIDを持っており、そのユーザIDに付加された権限の範囲内においてプロセスは資源にアクセスできます。また、プロセスが動作している時には、いずれかのユーザIDとグループIDを持っており、そのユーザIDに付加された権限の範囲内においてプロセスは資源にアクセスできます。グループIDは、そのグループにユーザが登録されている場合、そのユーザに与えられるグループ権限です。グループID(GID)は、そのグループにユーザが登録されている場合、そのユーザに与えられるグループ権限です。
UNIXの基本的な権限は、このユーザIDの違いによるユーザ権限と、グループIDの違いによるグループ権限の2つから成り立っています。
ファイルやプロセスの資源は次の3つに対しての許可によってアクセスコントロールされます。ファイルやプロセスの資源へのアクセス制御はユーザID・グループID<ref>自分のユーザIDやグループIDを確認するにはコマンドidを使う。詳しくは[[ユーザやグループの管理]]を参照のこと。</ref>を使っての許可・不許可によって行われるというのが基本的な考え方です。
まずファイルに対するユーザIDとグループIDを見てみましょう。ファイルには、ユーザIDとグループIDが設定されています。ユーザIDは、このファイルの所有者、もう少し正確にいうと、このファイルの属性を設定できるユーザが誰であるかを意味しています。まずファイルに対するユーザIDとグループIDを見てみましょう。所有者がファイルの属性を変更し、そのファイルのアクセス権限などをコントロールすることができます。ls -lをみてみましょう。ファイルには、ユーザIDとグループIDが設定されています。尚、表示される際は、ユーザIDはユーザID=このファイルの所有者です。なお、本章の範囲では、所有者とユーザと同じ意味で使っています。ユーザが自分の所有するファイルの属性を変更し、そのファイルのアクセス権限などをコントロールすることができます。ただしroot権限だけは例外で、システムのすべてに無制限にアクセスできます。 尚、ユーザIDが数字ではなくユーザ名として表示されるのは、ユーザIDは/etc/passwdで設定されているユーザIDに対応するアカウント名、グループIDはpasswdで設定されている対応するアカウント名、グループIDは/etc/groupで設定されているユーザIDに対応するグループ名に変換されて表示されます。groupで設定されている対応するグループ名に変換されて表示されるからです。 基本的なファイルへのアクセス権限は、「読み込み」「書き込み」「実行」です。ディレクトリの場合は実行の部分の意味が「ディレクトリとしてアクセスできるか」ということとして扱われます。
* アクセス権限 : 読み込み / 書き込み / 実行
* 所有者ユーザ・所有者(OwnerUser)に対して : 許可 / 不許可
* グループ(Group)に対して : 許可 / 不許可
* それ以外(Other)対して : 許可 / 不許可
memo.txtはユーザIDがhironobu、グループIDがhironobuになっており、所有者は読み書き、同じグループには読み込み、その他の権限でも読み込みができます。正確には、所有者と同じユーザIDを持ったプロセス、設定されたグループと同じグループに属するユーザIDを持つプロセス、それ以外のユーザIDを持つプロセスとなります。txtはユーザIDがhironobu、グループIDがhironobuになっており、ユーザ(所有者)は読み書き、同じグループには読み込み、その他の権限でも読み込みができます。正確には、ユーザと同じユーザIDを持ったプロセス、設定されたグループと同じグループに属するユーザIDを持つプロセス、それ以外のユーザIDを持つプロセスがアクセス可能であるという表現になります。
/var/mail/hironobuというファイルのユーザIDはhironobuになっており、グループIDはmailです。mailのグループ権限を持つプロセスから読み書き可能になっています。具体的には、メールサーバなどのプロセスが読み書きできるようになっています。
 
変更はコマンドchmodを使います。chmodのオプションではユーザ(所有者)はu、グループはg、それ以外の利用者はoという表現を使います。
パーミッションの許可は"+"、パーミッションの不許可は"-"を使います。
chmodのオプションで"go-rw"はグループとその他ユーザからの読み書きは不許可となります。
 
$ chmod go-rw memo.txt
$ ls -l memo.txt
-rw------- 1 hironobu hironobu 44 Sep 20 19:17 memo.txt
 
ユーザ(所有者)、グループ、その他ユーザの読み取り許可・不許可、書き込み許可・不許可、実行の許可・不許可は3ビットで表すので、この部分を8進数で表現することもできます。
その場合はビットの設定がuが110、gが000、oが000となるので、8進数表現をするモードでは600となります。
 
$ chmod 600 memo.txt
$ ls -l memo.txt
-rw------- 1 hironobu hironobu 44 Sep 20 19:17 memo.txt
== グループID利用の方法 ==
匿名利用者