Linuxでは、「ユーザー(Users)」「グループ(Groups)」「それ以外(Others)」でファイルのパーミッション(許可属性)が設定されています。今回は、この「ユーザー」と「グループ」を説明します。また、rootユーザーの役割を確認して「su/sudo」コマンドを試します。
Linuxは1台のコンピュータを複数のユーザーで使用できるように設計されています。従って、コンピュータを使用する際、最初に行う操作は「ログイン」になります。
Linuxのシステムを管理する上では、「どのユーザーの権限で何ができるか」がとても大切であり、ユーザーごとに使用できるディレクトリなどが決められています。そして、ユーザーの権限などを効率よく管理するために「グループ」が使用されます。
ユーザーの情報は「/etc/passwd」ファイルに保存されています。「/etc/passed」の書式は以下のようになっています(画面1)。
ユーザー名:パスワード:ユーザーID:グループID:その他の情報:ホームディレクトリ:シェル
【※】「head」はテキストファイルの冒頭部分を表示するコマンド
なお、パスワードは暗号化されて「/etc/shadow」ファイルに保存されており、「/etc/passwd」上では「x」で表示されます。
グループの情報は「/etc/group」ファイルに保存されています。「/etc/group」の書式は以下のようになっています(画面2)。
グループ名:パスワード:グループID:ユーザーリスト
「/etc/passwd」や「/etc/group」は、テキストエディタなどで直接編集することもできますが、通常は専用のコマンドを使用して編集します。
それぞれのファイルの詳細は、マニュアルを参照するコマンド「man」を使って「man 5 passwd」「man 5 group」を実行することで調べることができます。「5」はマニュアルの章番号です。
なお、実際の運用では、伝統的な「/etc/passwd」と「/etc/group」以外に、ネットワーク単位でユーザーを管理する「Active Directory」なども併用されていることがあります。これらの情報をまとめて取得したい場合は「getent」コマンドが便利です。
ユーザーは複数のグループに所属することができます。この中で、ログイン時のグループ(「/etc/passwd」にグループIDが書かれているグループ)を「プライマリーグループ」、それ以外のグループを「セカンダリーグループ」と呼びます。
例えば、「staff」というユーザーがファイルを作成した場合、ファイルの所有者はstaff、所有グループはstaffのプライマリーグループとなります。
なお、ファイルやディレクトリの属性として保存されるのは、「ユーザーID」と「グループID」です。「ls -l」コマンドなどで所有者を確認する際には、「/etc/passwd」と「/etc/group」の情報が参照されます。
CentOSやUbuntuでは、ユーザーのプライマリーグループとして、ユーザー名と同じ名前のグループが設定されています。この管理方式を「ユーザープライベートグループ(UPG)」と呼びます。
UPGの場合、新規ファイルのデフォルトのパーミッションは「rw-rw-r--」、新規ディレクトリのパーミッションは「rwxrwxr-x」となるように設定されています(画面3)(※)。
【※】デフォルトのパーミッションは「umask」コマンドで設定します
Copyright © ITmedia, Inc. All Rights Reserved.