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