
Linux環境でユーザーを作成したり、ユーザー設定の変更、ユーザーの削除といったユーザー管理を行う場合、覚えておきたいコマンドがいくつかあります。
そこでここでは、RedHat系LinuxのAlmaLinuxで、ユーザーの(一括)追加、ユーザー設定の変更、ユーザーの無効化、ユーザーの削除を行う方法を紹介します。
目次
ユーザーの追加
RedHat系Linuxでは、useraddコマンドでユーザーを追加できます。
# useradd [ユーザー名]useraddコマンドはオプションを指定することで、ホームディレクトリやログインシェルなどのユーザー設定を指定できますが、オプションなしで実行した場合は、デフォルト値でユーザーが追加されます。デフォルト値は、以下のコマンドで確認できます。
# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
追加したユーザーのパスワードは、以下のコマンドで設定します。
# passwd [ユーザー名]ユーザーを一括作成する
ユーザーをまとめて追加したい場合、パッと思いつくのはシェルスクリプトでuseraddコマンドを繰り返すという方法ですが、そんなことをしなくても、newusersコマンドを使ってユーザーをまとめて追加することができます。
newusersコマンドでは、ユーザー名と平文パスワードなどを記述したファイルを読み込んで、ユーザーを一括で追加することができます。
読み込むファイルには、1行ごとに以下の書式でユーザー情報を入力します。
ユーザー名:パスワード:ユーザーID:グループID:GCOS(コメント):ホームディレクトリ:シェル
たとえば「test_user1」から「test_user3」を作成したいときは、以下のようにファイルを作成します。なお、GCOS(コメント)フィールドは設定せずに空欄としています。
# vi input.txt
test_user1:test_user1:20001:20001::/home/test_user1:/bin/bash
test_user2:test_user2:20002:20002::/home/test_user2:/bin/bash
test_user3:test_user3:20003:20003::/home/test_user2:/bin/bashファイルを作成したら、newusersコマンドに作成したファイルを指定して実行します。
# newusers input.txtコマンドが正常終了してもメッセージ等は表示されないので、結果確認として「/etc/passwd」ファイルを参照して、ユーザー情報が反映されているか確認します。
# grep test* /etc/passwd
test_user1:x:20001:20001::/home/test_user1:/bin/bash
test_user2:x:20002:20002::/home/test_user2:/bin/bash
test_user3:x:20003:20003::/home/test_user3:/bin/bashなお、newusersコマンドを使ってユーザーを一括作成するときは、以下の点に注意が必要です。
- newusersコマンドは「/etc/skel」ディレクトリ内のファイルをユーザーのホームディレクトリにコピーしてくれません。
- 読み込むファイルには、平文でパスワードを記述するため、使用後はすぐに削除するか、適切に保護しておく必要があります。
次回ログイン時にパスワード変更を強制する
ユーザーが次回ログインしたときにパスワード変更させたいときは、以下のようにコマンドを実行します。
# chage -d 0 ユーザー名たとえば、ユーザー「user01」が次回ログインするときにパスワード変更を強制したいときは、以下のようにコマンドを実行します。
# chage -d 0 user01コマンド実行後、エラーなどが表示されずプロンプトが返ってくればOKです。

以上で、user01が次回ログインしたときに、パスワード変更画面が表示されます。

パスワードに有効期限を設定する
たとえば、以下のような設定でユーザー「user01」にパスワードの有効期限を設定する場合は、以下のようにコマンドを実行します。
- -m:パスワードの変更間隔の最短日数(3日)
- -M:パスワードの有効期間(28日)
- -W:パスワードの有効期限切れ警告の表示を開始する日数(7日前)
- -I:パスワードの有効期限が切れた後に、アカウントをロックするまでの日数(7日)
- -E:ユーザーアカウントの有効期限(2027年1月31日)
# chage -m 3 -M 28 -W 7 -I 7 -E 2027-01-31 user01オプションを指定せずにユーザー名だけ指定してchageコマンドを実行すれば、設定値を順に入力して設定することもできます。

ユーザーに設定したパスワード有効期限などの設定状況を確認するときは、以下のようにコマンドを実行します。
# chage -l ユーザー名
パスワードの有効期限を無期限にする
パスワードの有効期限を無期限にしたいときはchangeコマンドの「-M」オプションに「99999」を指定することで無期限にできます。
# chage -M 99999 ユーザー名ユーザーをグループに追加する
グループにユーザーを追加するときは、以下のようにコマンドを実行します。
# usermod -aG [グループ名] [ユーザー名]ホームディレクトリを変更する
ユーザーのホームディレクトリを変更するときは、以下のようにコマンドを実行します。
# usermod -d [新しいホームディレクトリパス] [ユーザー名]ユーザーアカウント名を変更する
ユーザーアカウント名を変更するときは、以下のようにコマンドを実行します。
# usermod -l 新ユーザー名 旧ユーザー名ユーザーアカウントの無効化/有効化
ユーザーアカウントを一時的に無効化したいときは、passwdコマンドを使ってロックするのがおすすめです。
# passwd -l [ユーザー名]
Locking password for user ユーザー名
passwd: Successユーザーアカウントを無効化(ロック)を解除するときは、-uオプションで解除します。
# passwd -u [ユーザー名]
Unlocking password for user ユーザー名
passwd: Successユーザーアカウントの削除
ユーザーアカウントを削除するときは、以下のようにコマンドを実行します。
# userdel -r 削除するユーザー名「-r」オプションを付けることで、ユーザーのホームディレクトリも削除できます。
あとがき
上に紹介しているコマンドを覚えておけば、効率よくユーザー管理ができるのではないでしょうか。