====== ユーザー一括登録 ======
===== adduserコマンド+chpasswdコマンド =====
ubuntuを使う場合はadduser+chpasswdにより、研究室の学生程度なら簡便な方法でユーザーの一括登録ができる。
$ sudo adduser --disabled-login --gecos GECOS t21d001
$ sudo adduser --disabled-login --gecos GECOS t22d004
$ sudo adduser --disabled-login --gecos GECOS t23d008
$ sudo chpasswd
t21d001:平文パスワード
t22d004:平文パスワード
t23d008:平文パスワード
^D
$
===== useraddコマンドの-pオプション =====
ユーザの一括登録を行う場合などは''-p''オプションを使ってパスワードも同時に設定すると便利。ただし、''-p''オプションの引数は平文パスワードではなくハッシュドパスワードなので''perl''や''python''の''crypt''関数/モジュールを使って変換する。
==== perl版(shから直接) ====
$ sudo useradd -m -p `perl -e "print(crypt('平文パスワード', '戦略兵器制限交渉'));"` t92e005
まあ、これが一番単純かな。
==== python版 ====
$ python -c "import crypt; print crypt.crypt('平文パスワード','\$6\$塩\$')
>>> import crypt
>>> print crypt.crypt('平文パスワード','\$6\$塩\$')
==== perl版 ====
#!/usr/bin/perl
my $userid = $ARGV[0];
my $passwd = $ARGV[1];
my $hashedpass = crypt($passwd, "\$6\$sa");
$hashedpass =~ s/\$/\\\$/g;
print "useradd -m -p $hashedpass $userid\n";
このファイルでは''crypt''の**salt**は''"sa"''とした。
上記のようなperlスクリプトを用意しておき、
% ./mkaddusers ユーザ名 平文パスワード > スクリプトファイル名
...
% sudo sh スクリプトファイル名
のように登録する。
==== mkpasswd in whois package ====
whoisパッケージに上記の処理をするコマンドmkpasswdが存在するのでそれを使うというのがファイナルアンサー。