CentOS 7をはじめとするLinux環境でユーザーを作成する場合、通常はuseradd(adduser)コマンドを利用しますが、このコマンドはユーザーを1人ずつ追加するコマンドで、ユーザーをまとめて追加する用途には向いていません。
ユーザーをまとめて追加したい場合、パッと思いつくのはシェルスクリプトでuseraddコマンドを繰り返すという方法ですが、そんなことをしなくても、Linux環境では「newusers」というコマンドを使ってユーザーをまとめて追加することができます。
そこでここでは「newusers」コマンドの使い方を紹介します。
目次
動作環境
この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
CentOS Linux | 7.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」ディレクトリ内のファイルをユーザーのホームディレクトリにコピーしてくれません。
- 読み込むファイルには、平文でパスワードを記述するため、使用後はすぐに削除するか、適切に保護しておく必要があります。
あとがき
個人的には、既存のユーザー情報を一括で変更したい場合に役立てそうです。