それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ユーザ登録の一括処理、新規登録を手早く(bulk create new users)

Linux に新規でユーザを登録したい。それもたくさん

5ユーザーを超えると流石に、管理しきれませんし、パスワードを生成するのも面倒くさい。何より登録が面倒くさい。

LDAPで認証連携をすればいいんだけど数10人程度でで認証連携ってのも面倒くさい。なによりLDAPにどうやって数十人もまとめて登録するんですか。

newuser コマンド があった

調べていたら newuser コマンドでバルク登録(大量一括)が出来ることが分かった。

以前にもnewuser コマンドを使って登録したが、以前は使い方が中途半端だったようでした。

newuser コマンド便利すぎてヤバイ。

newuser の使い方。

先にユーザーの一覧(ログインID,パスワード<平文>,ユーザーID,グループID, ホームディレクトリ, シェル) などを書いたファイルを用意しておく

# newusers user_passwd.list.txt

たったこれだけ。Debianで試したら、/etc/shadow にハッシュパスが登録されており、またホームディレクトリが生成されていた。感動した。

一覧ファイルの作り方

サンプルは次の通り

takuya01:my_password:2001:2001:takuya_1st:/home/takuya01:/bin/bash
takuya02:my_password:2002:2002:takuya_2nd:/home/takuya02:/bin/bash

この各項目は /etc/passwd 形式になっている。パスワードは平文でいいみたい。

項目 意味 サンプル
name ユーザーのログイン名 takuya
pass ユーザーのパスワード(平文) HJWb1q9aCLZq
UID ユーザのuid (数字) 2001
GID ユーザーgid(数字) 2001
GCOS フルネームなどユーザーメタ情報 木村拓哉
homeDir ホームディレクトリ /home/takuya
shell ログインシェル /bin/bash

このような項目を作って、:で接続してあげれば良いようだ。

UIDとGIDは、まぁ省略しても行けそうです。既存ユーザと衝突するとログイン名が異なるだけでファイルシステムやプロセス管理では同一ユーザーとして扱われてしまうので衝突には注意。

グループはどうするの?

同じようなコマンド。

# newgrp

が有ります。便利。

もしかして newuser で登録したらLDAPに投げてくれる?

useradd がそうなんだから LDAP に投げてくれそう。そのうち試したい。

関連資料

Linux の /etc/shadow 用 のパスワードを生成する。 - それマグで!

Linux ユーザーを一括登録&一括パスワード設定 - それマグで!

参考資料

http://www.cyberciti.biz/tips/linux-how-to-create-multiple-users-accounts-in-batch.html