ユーザーアカウントの追加や削除は、最も頻繁に行われるシステム管理タスクの 1 つです。システム管理者である root は、ユーザーアカウントを追加し、そのユーザーにシステムの資源を利用できる権利を与えます。そして、アカウントを取得したユーザーは、ユーザー名とパスワードによる認証を行うことによって、そのシステムにログインできるようになります。また、システム管理者は、複数のユーザーをグループと呼ばれる単位で管理することもあります。通常、システム管理者がユーザーやグループを管理するには、以下のコマンドを使用します。あるいは、これらのコマンドのフロントエンドとして動作する管理ツールを使用します。
useradd、usermod、userdel(ユーザーの追加、編集、削除)
passwd(パスワードの設定)
groupadd、groupmod、groupdel(グループの追加、編集、削除)
この章では、はじめに、Turbolinux 11 Server がユーザーやグループの情報を保持している管理ファイルについて解説します。その後で、これらの管理コマンドの使用方法を解説します。管理ファイルは、これらのコマンドを実行することによって編集されますので、テキストエディタで直接ファイルを編集する必要はありません。
Turbolinux 11 Server のユーザー情報は、/etc/passwd と /etc/shadow ファイルで管理されています。システム管理者である root が useradd コマンドで新規ユーザーを登録すると、これらのファイルにユーザーの情報が登録されます。以下に Turbolinux 11 Server インストール後の標準的な /etc/passwd の例を示します。
root:x:0:0:root:/root:/bin/bash tlclbadmin:x:0:0:TLCS admin:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: lp:x:4:7:lp:/var/spool/lpd: sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail: news:x:9:13:news:/var/spool/news: uucp:x:10:14:uucp:/var/spool/uucp: operator:x:11:0:operator:/root: games:x:12:100:games:/usr/games: gopher:x:13:30:gopher:/usr/lib/gopher-data: ftp:x:14:50:FTP User:/var/ftp: gdm:x:42:42::/var/gdm:/bin/bash haldaemon:x:68:68:HAL daemon:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin messagebus:x:81:81::/:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin smbguest:x:300:300:SMB Guest Account:/:/sbin/nologin public:x:301:301:public account:/:/sbin/nologin rpm:x:37:37::/var/lib/rpm:/bin/bash ais:x:39:39:openais Standards Based Cluster Framework:/:/sbin/nologin root:x:0:0:root:/root:/bin/bash tlclbadmin:x:0:0:TLCS admin:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: lp:x:4:7:lp:/var/spool/lpd: sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail: news:x:9:13:news:/var/spool/news: uucp:x:10:14:uucp:/var/spool/uucp: operator:x:11:0:operator:/root: games:x:12:100:games:/usr/games: gopher:x:13:30:gopher:/usr/lib/gopher-data: ftp:x:14:50:FTP User:/var/ftp: gdm:x:42:42::/var/gdm:/bin/bash haldaemon:x:68:68:HAL daemon:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin messagebus:x:81:81::/:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin smbguest:x:300:300:SMB Guest Account:/:/sbin/nologin public:x:301:301:public account:/:/sbin/nologin rpm:x:37:37::/var/lib/rpm:/bin/bash ais:x:39:39:openais Standards Based Cluster Framework:/:/sbin/nologin nscd:x:28:28:NSCD Daemon:/:/sbin/nologin rpcuser:x:29:29:Portmapper RPC user:/var/lib/nfs:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin sshd:x:302:302:SSH daemon:/:/bin/false amanda:x:33:6:Amanda user:/var/lib/amanda:/bin/bash named:x:25:25:Named:/var/named:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash distcache:x:94:94:Distcache:/:/sbin/nologin mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin dk-milter:x:303:303:DomainKeys Milter:/var/run/dk-milter:/sbin/nologin dkim-milter:x:304:304:DKIM Milter:/var/run/dkim-milter:/sbin/nologin drac:x:305:305::/etc/dracd:/bin/bash mailman:x:41:41:GNU Mailing List Manager:/var/mailman:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin sid-milter:x:306:306:Sender-ID Milter:/var/run/sid-milter:/sbin/nologin spamass-milter:x:307:307:SpamAssassin Milter:/var/spamass-milter:/bin/bash squid:x:23:23::/var/spool/squid:/sbin/nologin quagga:x:92:92:Quagga routing suite:/var/run/quagga:/sbin/nologin radiusd:x:95:95:radiusd user:/:/bin/false taro:x:500:500::/home/taro:/bin/bash jiro:x:501:501::/home/jiro:/bin/bash |
1 行につき 1 ユーザーの情報が登録されており、行はコロン : で 7 つのフィールドに分かれています。
account:password:UID:GID:GECOS:directory:shell |
useradd コマンドで一般ユーザーを登録すると、500 番から使用されていないユーザー ID(UID)が自動的に割り当てられます。この例では、taro という一般ユーザーが登録されていることが分かります。/etc/passwd には、他にも様々なユーザーが初期状態で登録されていますが、これらのユーザーは、Turbolinux 11 Server のインストール時に自動的に作成されたシステムユーザーです。システムにおけるユーザーは、人と直接結びついたユーザーではなく、アプリケーションやネットワークサービスなど特定のタスクを実行するために用意された擬似的なユーザーです。
各フィールドの意味は以下の通りです。
各ユーザーに割り当てたユーザー名が登録されます。ログイン名とも言われます。
Turbolinux 11 Server はシャドウパスワードを採用しているため、このフィールドは x となります。実際のパスワードは、/etc/shadow ファイルで管理されます。シャドウパスワードは、/etc/passwd がパスワードを管理する重要なファイルであるにもかかわらず、一般ユーザーでも参照可能なアクセス権限が設定されているため、パスワード情報のセキュリティを強化したものです。/etc/shadow ファイルは root ユーザーだけがアクセス可能です。
各ユーザーに割り当てられる固有の番号です。ユーザー ID(UID)が 0 のユーザーが root となります。useradd コマンドで一般ユーザーを登録すると 500 番から使用されていない UID が自動的に割り当てられます。
ユーザーのプライマリグループの ID(GID)が登録されます。Turbolinux 11 Server では、ユーザーアカウントを新規に登録すると同時に、ユーザーと同じ名前のグループを作成し、そのグループをユーザーのプライマリグループとします。グループの情報は、/etc/group ファイルで管理されています。
プライマリグループとは、ユーザーがシステムにログインしたときのデフォルトのグループです。また、ユーザーはプライマリグループだけでなく、複数のグループに属することも可能です。それらのグループはセカンダリグループと呼ばれます。ユーザーは、newgrp コマンドを実行して現在のグループ(カレントグループ)を変更することができます。カレントグループの変更が必要になるのは、ユーザーが新規ファイルを作成するときなどです。作成したファイルの所有グループは、ユーザーのカレントグループになります。
ユーザー情報です。以前、このフィールドにユーザー情報を格納していたオペレーティングシステムの名前に由来して GECOS フィールドと呼ばれることもあります。必ずしも登録が必要なフィールドではありません。慣例的に "フルネーム,オフィスの部屋番号,オフィスの内線番号,自宅の電話番号,その他" の情報がカンマ , 区切りで登録されていましたが、今では、このようなプライベートな情報をこのフィールドに登録するべきではありません。通常はユーザーのフルネームだけが登録されます。
ユーザーのホームディレクトリが登録されます。ユーザーがシステムにログインした際のカレントディレクトリとなります。
ユーザーがログインしたときに使用するデフォルトのシェルが指定されます。Turbolinux 11 Server では /bin/bash がデフォルトのシェルとして指定されます。
次に、シャドウパスワードの管理ファイルである /etc/shadow に登録されたパスワード情報の例を示します。passwd コマンドでユーザーのパスワードを設定すると、以下のように、各ユーザーのパスワード情報が登録されます。
taro:$1$0jPVhiP4$eSVTKpO/kJGuXxLzAnTB8.:12634:0:99999:7::: |
1 行につき 1 ユーザーのパスワード情報が登録されており、各行はコロン : で 9 つのフィールドに分かれています。
Login_name:Encrypted_password:Last_Password_Change:Minimum_Password_Age:Maximum_Password_Age:Warning_days:Password_Inactive:Password_Expiration_Warning:Reservation_field |
各フィールドの意味は以下の通りです。
各ユーザーに割り当てたユーザー名が登録されます。
MD5 で暗号化されたユーザーのパスワードが登録されます。パスワードの前に ! が付いている場合は、そのユーザーのパスワードはロックされます。パスワードをロックされたユーザーは、パスワードを入力してもログインすることはできません。
1970/01/01 から最後にパスワードを変更した日までの日数が登録されます。
ユーザーに新しいパスワードを保持させる日数を指定します。この日数を経過しなければ、パスワードを変更することはできません。
ユーザーが同じパスワードを使用できる日数を指定します。この日数を経過したら、パスワードを変更しなければなりません。
パスワードの使用期限が近づいたことを、何日前からユーザーに通知するかを指定します。
パスワードの使用期限が切れてから、何日間アカウントを使用することを許可するかを指定します。この期間にユーザーがログインを試みると、パスワードの変更を強制されます。この期間にユーザーがパスワードを変更しなかった場合、自動的にアカウントは使用不可となります。
アカウントを自動的に使用不可にする日を 1970/01/01 からの日数で登録されます。たとえ猶予期間内であってもパスワードは使用不可となります。
将来の拡張のために用意されたフィールドで、特に利用されていません。