LinuxServer アカウント管理について ユーザとグループ
Linuxを利用するにはシステム上にアカウント(ユーザID)が必要になります。
アカウントは、人間が利用するアカウントと特定のアプリケーション用に存在するものがあり、
人間が利用するアカウントは、システムを管理アカウント(root)用と、システムを利用する人(ユーザアカウント)に分かれます。
アカウントの情報は次に説明するファイルとコマンドで、確認、操作が行えます。
ユーザ情報の管理
ユーザー情報は、/etc/passwdファイルで確認する事ができます。/etc/passwdファイルはプレーンテキストで
アクセス権が644なので一般ユーザでも中を見ることができます。
/etc/passwdファイルは1行で1ユーザアカウントの情報を記述し各項目は「:」で区切られます。
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
各項目は左から次の意味を持ちます。
nfsnobody-ユーザ名:システム内でユニークな名前を持ち同じシステム内で超フルすることはできません。
x-パスワード:現在ではシャドウパスワードが使われるのでここには「x」が入ります。
65534-ユーザID:ユーザを識別するIDが入ります。rootは0であり、一般ユーザはディストリビューションによって、500番以降を割り当てらり、1000番以降を割り当てます。
65534-グループID:所属するグループを表記します。グループIDの詳細は/etc/groupファイルで定義します。
Anonymous NFS User-コメント:ユーザに関するコメント情報が入ります。
/var/lib/nfs-ホームディレクトリ:ユーザのホームディレクトリが入ります。
/sbin/nologin-デフォルトシェル:ユーザがログインした際や、新たにシェルを開いた際に起動されるシェルが入ります。
なお、パスワードの部分が空白である場合、パスワード無しでログインできる可能性があります。
以前は/etc/passwdファイルに暗号化されたパスワードが書かれており、この暗号化パスワードは時間を掛ければ解読されてしまいます。
また、/etc/passwd ファイルを一般ユーザーが読めないようにすると、プロンプトの表示に不具合が生じたりします。
そのため、ユーザパスワードの管理にはシャドウパスワードを使用し、パスワード情報を
rootのみが読める/etc/shadowファイルに格納しています。
暗号化されたパスワードは/etc/shadowファイルの第二フィールドに入ります。
複数のユーザをまとめて扱うグループという機能があり、同一グループのユーザーは、そ
のグループ所有のファイルに対し、読み込み、書き込み、実行が可能となります。
ユーザは複数のグループに所属することができ、ユーザにとって基本となるグループを
プライマリグループ、それ以外に所属するグループをサブグループと呼びます。
ユーザのプライマリグループは/etc/passwdファイルのグループIDフィールドで確認できます。
グループ情報は、/etc/groupファイルに保存されます。
mail:x:12:mail,postfix
各項目は左から次の意味を持ちます。
mail-グループ名:グループの名称が入ります
x-グループパスワード:グループメンバー用のパスワードが入ります。シャドウパスワードを使用しているので「x」が入ります。
12-グループID:グループを識別するグループIDが入ります。
mail,postfix-グループメンバ:サブグループとして所属するユーザ名が入ります。
複数のユーザが所属している場合は、「,」で区切って入ります。
ユーザ管理コマンド
ユーザを管理するコマンドには次のものがあります。
主なユーザ管理コマンド
コマンド | 説明 |
---|---|
useradd | ユーザを新規に作成します |
usermod | 既存のユーザの情報を変更します |
userdel | 既存のユーザを削除します |
passwd | 既存のユーザのパスワード変更します |
groupadd | ユーザを新規に作成します |
groupmod | 既存のユーザの情報を変更します |
groupdel | 既存のユーザを削除します |
id | ユーザのユーザIDやグループIDを表示します |
新規にユーザーを作成するには、useraddコマンドを使用します。
[コマンド書式]
useradd -オプション ユーザ名
useraddコマンドの主なオプションは次のとおりです。
主なオプション
オプション | 説明 |
---|---|
-c コメント | /etc/passwdファイルに記述するコメントを入力します |
-d ホームディレクトリパス | ホームディレクトリを指定します |
-g グループID | プライマリグループを指定します |
-G グループID | サブグループを指定します |
-s ログインシェル | ユーザのデフォルトシェルを指定します |
-D | 作成されるユーザーのデフォルトの設定値を表示します |
[コマンド実行例]ユーザIDとホームディレクトリ、ログインシェルを指定してユーザuser01を作成します。
# useradd -u 538 -d /home/600538 -s /bin/bash user538
ユーザアカウントと同時に作成されるホームディレクトリにユーザに必要と思われる
基本的な設定ファイルなどを/etc/skelディレクトリに設定することができます。