Linuxでユーザーアカウントを作成/削除する方法

Linuxでユーザーアカウントを作成/削除する方法

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」オプションを付けることで、ユーザーのホームディレクトリも削除できます。

あとがき

上に紹介しているコマンドを覚えておけば、効率よくユーザー管理ができるのではないでしょうか。