Linuxでユーザーを一括作成する方法(newusers)

Linuxでユーザーを一括作成する方法(newusers)

CentOS 7をはじめとするLinux環境でユーザーを作成する場合、通常はuseradd(adduser)コマンドを利用しますが、このコマンドはユーザーを1人ずつ追加するコマンドで、ユーザーをまとめて追加する用途には向いていません。

ユーザーをまとめて追加したい場合、パッと思いつくのはシェルスクリプトでuseraddコマンドを繰り返すという方法ですが、そんなことをしなくても、Linux環境では「newusers」というコマンドを使ってユーザーをまとめて追加することができます。

そこでここでは「newusers」コマンドの使い方を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
CentOS Linux7.6.1810

newusersコマンドの使い方

「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」ディレクトリ内のファイルをユーザーのホームディレクトリにコピーしてくれません。
  • 読み込むファイルには、平文でパスワードを記述するため、使用後はすぐに削除するか、適切に保護しておく必要があります。

あとがき

個人的には、既存のユーザー情報を一括で変更したい場合に役立てそうです。