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 [ユーザー名]
ユーザー自身にパスワードを設定させたいときは、以下のコマンドで初期パスワードがすぐに期限切れになるよう設定しておくことで、ユーザーが次回ログインした時にパスワードを変更させることができます。
# chage -d 0 [ユーザー名]
ユーザーを一括追加するときは
ユーザーをまとめて追加したい場合、パッと思いつくのはシェルスクリプトで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」ディレクトリ内のファイルをユーザーのホームディレクトリにコピーしてくれません。
- 読み込むファイルには、平文でパスワードを記述するため、使用後はすぐに削除するか、適切に保護しておく必要があります。
ユーザーアカウント設定の変更
ユーザーアカウントの追加時(useraddコマンドのオプションで)に、ユーザーが所属するグループやユーザーのホームディレクトリー、ユーザーアカウントの有効期限などを設定ができますが、これらの設定は、ユーザーアカウント追加後も、usermodコマンドで変更することができます。
たとえば、グループにユーザーを追加するときは、以下のようにコマンドを実行します。
# 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」オプションを付けることで、ユーザーのホームディレクトリも削除できます。
あとがき
上に紹介しているコマンドを覚えておけば、効率よくユーザー管理ができるのではないでしょうか。