4 ユーザーおよびグループ・アカウントの使用

デフォルトでは、Oracle Linuxの新規インストールでは、認証、権限処理およびリソースへのアクセスにローカル・ユーザーおよびグループ・アカウントが使用されます。ユーザーおよびグループのローカル・アカウントを操作する場合は、useraddgroupaddおよびusermodの3つのメイン・コマンドを使用します。これらのコマンドとその各種オプションを使用して、ユーザーおよびグループを追加または削除したり、ユーザーまたはグループの設定を変更できます。

ユーザーおよびグループ・アカウントについて

システム認証を実装するために、Oracle Linuxでは、ユーザーとグループの2つのタイプのアカウントを使用します。これらのアカウントには、パスワード、ユーザーのホーム・ディレクトリ、ログイン・シェル、グループ設定、メンバーシップなどの情報がまとめて保持されます。この情報は、認可されたログインのみがシステムへのアクセス権を付与されるようにするために使用されます。資格証明がないユーザー、または資格証明がこれらのアカウントの情報と一致しないユーザーは、システムからロックアウトされます。

デフォルトでは、ユーザーおよびグループの情報はシステムにローカルに配置されます。ただし、数百のサーバーと数千のユーザーが含まれることがあるエンタープライズ環境では、ユーザーおよびグループ・アカウント情報は、各サーバーのファイルではなく中央リポジトリに格納される方が適切です。ユーザーおよびグループ情報は中央サーバーに構成され、Lightweight Directory Access Protocol (LDAP)やNetwork Information Service (NIS)などのサービスを介して取得されます。このような情報の一元管理は、ユーザーおよびグループの情報をローカルに保存および構成するよりも効率的です。

ユーザーおよびグループの情報がローカルに格納される場所

インストール時に別の認証メカニズムを選択するか、authselectコマンドを使用して認証プロファイルを作成しないかぎり、Oracle Linux/etc/passwdおよび/etc/shadowファイルに格納されている情報を使用してユーザーのアイデンティティを検証します。

/etc/passwdファイルには、ユーザーの一意のユーザーID (整数のUID)、ユーザー名、ホーム・ディレクトリ、ログイン・シェルなどの各ユーザーのアカウント情報が格納されます。ユーザーは、ユーザー名を使用してログインしますが、オペレーティング・システムでは、関連付けられているUIDが使用されます。ユーザーがログインすると、ホーム・ディレクトリに移動し、ログイン・シェルが実行されます。

/etc/groupファイルには、ユーザーのグループに関する情報が格納されます。また、ユーザーは1つ以上のグループに属し、各グループには1つ以上のユーザーを含めることができます。グループにアクセス権限を付与できる場合は、そのグループのすべてのメンバーに同じアクセス権限が付与されます。各グループ・アカウントには、一意のグループID (整数のGID)と関連するグループ名を指定します。

Oracle Linuxには、デフォルトでユーザー・プライベート・グループ(UPG)スキームが実装され、ユーザー・アカウントを追加すると、対応するUPGがそのユーザーと同じ名前で作成され、作成されたユーザーがその唯一のメンバーになります。

デフォルトでは、ユーザーとグループの両方に暗号でハッシュされたshadowパスワードが使用され、/etc/shadow/etc/gshadowにそれぞれ格納されます。これらのshadowパスワード・ファイルは、管理者のみが読取り可能です。管理者は、ユーザーがグループのメンバーになるために入力する必要があるグループ・パスワードを設定できます。グループにパスワードが設定されていない場合、管理者がそのユーザーをメンバーとして追加する場合にのみ、ユーザーはグループに参加できます。

ユーザーは、newgrpコマンドを使用して新しいグループにログインしたり、ログイン・セクションで現在のグループIDを変更できます。ユーザーにパスワードが設定されている場合、ユーザーはグループ・メンバーシップを永続的に追加できます。newgrp(1)マニュアル・ページを参照してください。

/etc/login.defsファイルには、パスワードのエージングおよび関連するセキュリティ・ポリシーのパラメータが定義されます。

これらのファイルの内容の詳細は、group(5)gshadow(5)login.defs(5)passwd(5)およびshadow(5)の各マニュアル・ページを参照してください。

 ユーザー・アカウントの作成

  1. 次のコマンドを入力します。

    sudo useradd [options] username

    オプションを指定すると、アカウントの設定をデフォルトから変更できます。

    デフォルトでは、ユーザー名の引数を指定してオプションを指定しないと、useraddによって、次に使用可能なUIDを使用してロックされたユーザー・アカウントが作成され、ユーザーのグループとしてGROUPに定義されている値に割り当てられるのではなく、ユーザー・プライベート・グループ(UPG)に割り当てられます。

    ノート:

    ユーザー名には最大32文字を使用できます。

    ユーザー名は、小文字(a-z)と大文字(A-Z)の文字、数字(0-9)またはアンダースコア(_)で開始できます。

    ユーザー名にはすべての開始文字を含めることができますが、ダッシュ(-)を含めることもでき、ドル記号($)で終わることもできます。

    ピリオド(.)または二重ピリオド(..)のみを含む完全な数値ユーザー名およびユーザー名は使用できません。

    ピリオド(.)文字で始まるユーザー名は、許可されていますが、一部のソフトウェアで問題が発生し、結果として生成されるホーム・ディレクトリも非表示になる可能性があるため、お薦めしません。

  2. アカウントにパスワードを割り当てます。

    sudo passwd username         

    コマンド・プロンプトによって、アカウントのパスワードを入力するように求められます。

    パスワードを(たとえばスクリプトから)非対話的に変更するには、かわりにchpasswdコマンドを使用します。

    echo "username:password" | chpasswd

newusersコマンドを使用して、同時に複数のユーザー・アカウントを作成できます。

詳細は、chpasswd(8)newusers(8)passwd(1)およびuseradd(8)の各マニュアル・ページを参照してください。

WebベースのGUIを使用してユーザーを作成するには、Oracle Linux: Cockpit Webコンソールの使用を参照してください。

アカウントのロック

ユーザーのアカウントをロックするには、passwd -lコマンドを使用します。

sudo passwd -l username

アカウントのロックを解除するには、passwd -uコマンドを使用します。

sudo passwd -u username

詳細は、passwd(1)マニュアル・ページを参照してください。

ユーザー・アカウントの変更または削除

ユーザー・アカウントを変更するには、usermodコマンドを使用します。

sudo usermod [options] username

たとえば、(ユーザーのデフォルトのログイン・グループ以外の)補助グループにユーザーを追加するには、次のようにします。

sudo usermod -aG groupname username

次の例のように、groupsコマンドを使用して、ユーザーが属するグループを表示できます。

sudo groups username

ユーザー・アカウントを削除するには、userdelコマンドを使用します。

sudo userdel username               

詳細は、groups(1)userdel(8)およびusermod(8)の各マニュアル・ページを参照してください。

ユーザー・アカウントのデフォルト設定の変更

ユーザー・アカウントのデフォルト設定を表示するには、次のコマンドを使用します。

sudo useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

INACTIVE: ユーザーのパスワードの期限が切れると、システムでアカウントを何日後にロックするかを指定します。0に設定すると、アカウントは即時にロックされます。-1に設定すると、アカウントはロックされません。

SKEL: テンプレート・ディレクトリを定義します。その内容は、新規に作成されたユーザーのホーム・ディレクトリにコピーされます。このディレクトリの内容は、SHELLで定義されたデフォルトのシェルと一致します。

ユーザー・アカウントのデフォルトの設定を変更するには、useradd -Dに各オプションを指定します。たとえば、INACTIVEHOMEおよびSHELLのデフォルトを変更するには、次のようにします。

sudo useradd -D -f 3 -b /home2 -s /bin/sh

ノート:

デフォルトのログイン・シェルを変更する場合は、多くの場合、新しいシェルに適した内容を含むSKELテンプレート・ディレクトリも作成します。

ユーザーのSHELL/sbin/nologinを指定すると、ユーザーは、システムに直接ログインできませんが、プロセスはそのユーザーのIDを使用して実行できます。この設定は通常、root以外のユーザーで実行するサービスに対して使用されます。

デフォルトの設定は、/etc/default/useraddファイルに格納されています。

詳細は、「パスワードのエージングの構成」およびuseradd(8)マニュアル・ページを参照してください。

グループの作成

グループを作成するには、groupaddコマンドを使用します。

sudo groupadd [options] groupname

通常は-gオプションを使用して、グループID (GID)を指定します。次に例を示します。

sudo groupadd -g 1000 devgrp

詳細は、groupadd(8)マニュアル・ページを参照してください。

グループの変更または削除

グループを変更するには、groupmodコマンドを使用します。

sudo groupmod [options] username

ユーザー・アカウントを削除するには、groupdelコマンドを使用します。

sudo groupdel username

詳細は、groupdel(8)およびgroupmod(8)の各マニュアル・ページを参照してください。

ディレクトリへのグループ・アクセス・モードの構成

プライマリ・グループがUPGではないユーザーの/etc/profileまたは/etc/bashrcでは、umaskが0022に設定されており、これによって、ユーザーの所有するファイルの他のユーザー(プライマリ・グループの他のメンバーも含む)による変更が防止されます。

プライマリ・グループがUPGのユーザーのumaskは0002です。同じグループを持つ他のユーザーはいません。

同じグループのユーザーに同じディレクトリ内のファイルへの書込みアクセス権を付与するには、ディレクトリのグループ所有権をグループに変更し、ディレクトリにsetgidビットを設定します。

sudo chgrp groupname directory
sudo chmod g+s directory

そのようなディレクトリに作成されたファイルのグループは、ファイルを作成したユーザーのプライマリ・グループではなく、ディレクトリのグループに設定されます。

削除制限ビットを使用すると、ファイルまたはディレクトリの所有者を除いて、権限のないユーザーがファイルを削除したり名前を変更することができなくなります。

ディレクトリに削除制限ビットを設定するには:

sudo chmod a+t directory    

詳細は、chmod(1)マニュアル・ページを参照してください。

パスワードのエージングの構成

ユーザー・パスワードのエージング方法を指定するには、/etc/login.defsファイルで次の設定を編集します。
設定 説明

PASS_MAX_DAYS

パスワードを変更するまでに使用できる最大日数。デフォルト値は99,999日です。

PASS_MIN_DAYS

パスワード変更の間隔として許容される最小日数。デフォルト値は0日です。

PASS_WARN_AGE

警告が表示されるパスワードが期限切れになるまでの日数。デフォルト値は7日です。

詳細は、login.defs(5)マニュアル・ページを参照してください。

ユーザー・アカウントが非アクティブになってからロックされるまでの期間を変更するには、usermodコマンドを使用します。たとえば、非アクティブ期間を30日に設定します。

sudo usermod -f 30 username

新規ユーザー・アカウントのデフォルトの非アクティブ期間を変更するには、useraddコマンドを使用します。

sudo useradd -D -f 30

値-1は、非アクティブのためにユーザー・アカウントがロックされないことを指定します。

詳細は、useradd(8)およびusermod(8)の各マニュアル・ページを参照してください。