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 [ユーザー名]

ユーザーを一括作成する

ユーザーをまとめて追加したい場合、パッと思いつくのはシェルスクリプトで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です。

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

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

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

パスワードに有効期限を設定する

たとえば、以下のような設定でユーザー「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コマンドを実行すれば、設定値を順に入力して設定することもできます。

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

ユーザーに設定したパスワード有効期限などの設定状況を確認するときは、以下のようにコマンドを実行します。

# chage -l ユーザー名

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

パスワードの有効期限を無期限にする

パスワードの有効期限を無期限にしたいときは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」オプションを付けることで、ユーザーのホームディレクトリも削除できます。

あとがき

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