2 ローカル・アカウント構成
警告:
Oracle Linux 7は現在延長サポート中です。詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。
できるだけ早くアプリケーションとデータをOracle Linux 8またはOracle Linux 9に移行してください。
この章では、ローカル・ユーザー/グループ・アカウントを構成および管理する方法について説明します。
ユーザーおよびグループ構成について
ユーザー・マネージャGUI (system-config-users)を使用すると、ユーザーおよびグループを追加または削除したり、パスワード、ホーム・ディレクトリ、ログイン・シェル、グループ・メンバーシップなどの設定を変更できます。また、useraddやgroupaddなどのコマンドを使用できます。
図2-1 ユーザー・マネージャ

数百のサーバーと数千のユーザーが含まれることがあるエンタープライズ環境では、多くの場合、ユーザーおよびグループのアカウント情報は各サーバーのファイルではなく中央リポジトリに保持されます。ユーザーおよびグループ情報を中央サーバーに構成し、Lightweight Directory Access Protocol (LDAP)やNetwork Information Service (NIS)などのサービスを使用してこの情報を取得できます。さらに、ユーザーのホーム・ディレクトリを中央サーバーに作成し、ユーザーがシステムにログインすると自動的にこれらのリモート・ファイル・システムをマウントしたりリモート・ファイル・システムにアクセスできます。
ユーザー・アカウントのデフォルト設定の変更
アカウントのデフォルト設定を表示するには、次のコマンド使用します。
# 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に各オプションを指定します。たとえば、INACTIVE
、HOME
およびSHELL
のデフォルトを変更するには、次のようにします。
# useradd -D -f 3 -b /home2 -s /bin/sh
ノート:
デフォルトのログイン・シェルを変更する場合は、通常、新しいSKEL
テンプレート・ディレクトリも新しいシェルに適した内容で作成します。
ユーザーのSHELL
に/sbin/nologin
を指定すると、ユーザーは、システムに直接ログインできませんが、プロセスはそのユーザーのIDを使用して実行されます。この設定は通常、root
以外のユーザーで実行するサービスに対して使用されます。
デフォルトの設定は、/etc/default/useradd
ファイルに格納されています。
詳細は、パスワードのエージングの構成およびuseradd(8)
マニュアル・ページを参照してください。
ユーザー・アカウントの作成
useraddコマンドを使用してユーザー・アカウントを作成するには:
-
次のコマンドを入力して、ユーザー・アカウントを作成します。
# useradd [options] username
オプションを指定すると、アカウントの設定をデフォルトから変更できます。
デフォルトでは、ユーザー名の引数を指定してオプションを指定しないと、useraddによって、次に使用可能なUIDを使用してロックされたユーザー・アカウントが作成され、ユーザーのグループとして
GROUP
に定義されている値に割り当てられるのではなく、ユーザー・プライベート・グループ(UPG)に割り当てられます。 -
アカウントにパスワードを割り当てて、ロックを解除します。
# passwd username
コマンド・プロンプトによって、アカウントのパスワードを入力するように求められます。
非対話形式でパスワードを変更する場合は(例: スクリプトから)、かわりにchpasswdコマンドを使用します。
echo "username:password" | chpasswd
または、newusersコマンドを使用すると、同時に複数のユーザー・アカウントを作成できます。
詳細は、chpasswd(8)
、newusers(8)
、passwd(1)
およびuseradd(8)
の各マニュアル・ページを参照してください。
umask、setgidおよび削除制限ビットについて
プライマリ・グループがUPGではないユーザーの/etc/profile
または/etc/bashrc
では、umask
が0022に設定されており、これによって、ユーザーの所有するファイルの他のユーザー(プライマリ・グループの他のメンバーも含む)による変更が防止されます。
プライマリ・グループがUPGのユーザーのumask
は0002です。これは、同じグループに他のユーザーが存在していないことを想定しています。
同じグループのユーザーに同じディレクトリ内のファイルへの書込みアクセス権を付与するには、ディレクトリのグループ所有権をグループに変更し、ディレクトリにsetgid
ビットを設定します。
# chgrp groupname directory # chmod g+s directory
そのようなディレクトリに作成されたファイルのグループは、ファイルを作成したユーザーのプライマリ・グループではなく、ディレクトリのグループに設定されます。
削除制限ビットを使用すると、ファイルまたはディレクトリの所有者を除いて、権限のないユーザーがファイルを削除したり名前を変更することができなくなります。
ディレクトリに削除制限ビットを設定するには:
# chmod a+t directory
詳細は、chmod(1)
マニュアル・ページを参照してください。
アカウントのロック
ユーザーのアカウントをロックするには、次のように入力します。
# passwd -l username
アカウントをロック解除するには:
# passwd -u username
詳細は、passwd(1)
マニュアル・ページを参照してください。
ユーザー・アカウントの変更または削除
ユーザー・アカウントを変更するには、usermodコマンドを使用します。
# usermod [options] username
たとえば、(ユーザーのログイン・グループ以外の)補助グループにユーザーを追加するには、次のようにします。
# usermod -aG groupname username
次の例のように、groupsコマンドを使用して、ユーザーが属するグループを表示できます。
# groups root root : root bin daemon sys adm disk wheel
ユーザー・アカウントを削除するには、userdelコマンドを使用します。
# userdel username
詳細は、groups(1)
、userdel(8)
およびusermod(8)
の各マニュアル・ページを参照してください。
グループの作成
groupaddコマンドを使用してグループを作成するには:
# groupadd [options] groupname
通常は-gオプションを使用して、グループID (GID)を指定します。たとえば:
# groupadd -g 1000 devgrp
詳細は、groupadd(8)
マニュアル・ページを参照してください。
グループの変更または削除
グループを変更するには、groupmodコマンドを使用します。
# groupmod [options] username
ユーザー・アカウントを削除するには、groupdelコマンドを使用します。
# groupdel username
詳細は、groupdel(8)
およびgroupmod(8)
の各マニュアル・ページを参照してください。
パスワードのエージングの構成
/etc/login.defs
ファイルで次の設定を編集します。
設定 | 説明 |
---|---|
|
パスワードを変更するまでに使用できる最大日数。デフォルト値は99,999日です。 |
|
パスワードを変更する間隔として許容される最大日数。デフォルト値は0日です。 |
|
パスワードの期限が切れる前に警告が表示される日数。デフォルト値は7日です。 |
詳細は、login.defs(5)
マニュアル・ページを参照してください。
ユーザー・アカウントが非アクティブになってからロックされるまでの期間を変更するには、usermodコマンドを使用します。たとえば、非アクティブ期間を30日に設定します。
# usermod -f 30 username
新規ユーザー・アカウントのデフォルトの非アクティブ期間を変更するには、useraddコマンドを使用します。
# useradd -D -f 30
値-1は、非アクティブのためにユーザー・アカウントがロックされることはないことを示します。
詳細は、useradd(8)
およびusermod(8)
の各マニュアル・ページを参照してください。
ユーザーへのsudoアクセス権の付与
デフォルトでは、Oracle Linuxシステムはroot
として直接ログインできないように構成されています。事前に指定ユーザーとしてログインしてから、suまたはsudoを使用してroot
としてタスクを実行します。この構成により、システム・アカウンティングで特権管理アクションを実行するユーザーの元のログイン名を追跡できます。特定ユーザーにsudoを使用して特定の管理タスクを実行できる権限を付与するには、visudoコマンドを使用して/etc/sudoers
ファイルを変更します。
たとえば、次のエントリでは、sudoを使用する場合にユーザーerin
にはroot
と同じ権限を付与しますが、frank
には権限を限定して定義し、systemctl、rpm、およびyumなどのコマンドのみを実行できるようにします。
erin ALL=(ALL) ALL frank ALL= SERVICES, SOFTWARE
詳細は、su(1)
、sudo(8)
、sudoers(5)
およびvisudo(8)
の各マニュアル・ページを参照してください。