機械翻訳について

第1章 ローカル・アカウントの構成および管理

この章では、Oracle Linux 8でローカル・ユーザーおよびグループのアカウントを構成および管理する方法について説明します。

1.1 ユーザーおよびグループ構成について

ユーザーやグループの追加および削除、ならびにパスワード、ホーム・ディレクトリ、ログイン・シェル、グループ・メンバーシップなどの設定変更を行うには、useraddおよびgroupaddコマンドを使用

数百のサーバーと数千のユーザーが含まれることがあるエンタープライズ環境では、多くの場合、ユーザーおよびグループのアカウント情報は各サーバーのファイルではなく中央リポジトリに保持されます。 中央のサーバー上でユーザーおよびグループの情報を構成し、Lightweight Directory Access Protocol (LDAP)やNetwork Information Service (NIS)などのサービスを使用してこの情報を取得できます。 また、ユーザーがシステムにログインするときに、中央のサーバーにホーム・ディレクトリを作成し、これらのリモート・ファイル・システムを自動的にマウントまたはアクセスすることもできます。

1.2 ユーザーおよびグループの情報を格納するファイルについて

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

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

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

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

ユーザー・アカウントおよびグループ・アカウントの追加、変更または削除を実行できるのは、rootユーザーのみです。 デフォルトでは、ユーザーとグループの両方に暗号でハッシュされたshadowパスワードが使用され、/etc/shadow/etc/gshadowにそれぞれ格納されます。 これらのシャドウ・パスワードのファイルは、rootユーザーのみが読み取ることができます。 rootユーザーは、ユーザーがグループのメンバーになるために入力する必要があるグループ・パスワードを設定できます。 グループにパスワードがない場合、rootユーザーがそのユーザーをメンバーとして追加した場合のみ、ユーザーはそのグループに参加できます。

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

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

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

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

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

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ファイルに格納されています。

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

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

useraddコマンドを使用してユーザー・アカウントを作成するには:

  1. useraddコマンドを使用して、ユーザー・アカウントを作成します:

    sudo useradd [options] username

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

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

  2. 次のようにパスワードをアカウントに割り当て、ロックを解除します:

    sudo passwd username

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

    非対話形式でパスワードを変更する場合は(例: スクリプトから)、かわりにchpasswdコマンドを使用します。

    echo "username:password" | chpasswd

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

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

webベースのGUIを使用してユーザーを作成する場合は、https://docs.oracle.com/en/operating-systems/oracle-linux/8/obe-cockpit-usermanage/index.htmlを参照してください。

1.4.1 umask、setgidおよび削除制限ビットについて

プライマリ・グループが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)マニュアル・ページを参照してください。

1.5 アカウントのロック

ユーザー・アカウントをロックするには、-lオプションを指定してpasswdコマンドを使用します:

sudo passwd -l username

アカウントのロックを解除するには、-uオプションを指定します:

sudo passwd -u username

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

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

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

sudo usermod [options] username

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

sudo usermod -aG groupname username

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

sudo groups root
root : root

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

sudo userdel username

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

1.7 グループの作成

groupaddコマンドを使用してグループを作成するには:

sudo groupadd [options] groupname

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

sudo groupadd -g 1000 devgrp

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

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

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

sudo groupmod [options] username

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

sudo groupdel username

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

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

ユーザー・パスワードのエージング方法を指定するには、/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)の各マニュアル・ページを参照してください。

1.10 ユーザーへのsudoアクセス権の付与

デフォルトでは、Oracle Linuxシステムは、rootユーザーとして直接ログインできないように構成されています。 事前に指定ユーザーとしてログインしてから、suまたはsudoを使用してrootとしてタスクを実行します。 この構成により、システム・アカウンティングで特権管理アクションを実行するユーザーの元のログイン名を追跡できます。 特定ユーザーにsudoを使用して特定の管理タスクを実行できる権限を付与するには、visudoコマンドを使用して/etc/sudoersファイルを変更します。

たとえば、次のエントリでは、sudoを使用したときにrootと同じ権限をユーザーerinに付与しますが、frankへの一定の権限が定義されているため、systemctlrpm、およびdnfのようなコマンドを実行できるようになります:

erin           ALL=(ALL)       ALL
frank          ALL= SERVICES, SOFTWARE

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