目次

ユーザー一括登録

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オプションの引数は平文パスワードではなくハッシュドパスワードなのでperlpythoncrypt関数/モジュールを使って変換する。

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版

mkaddusers
#!/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";

このファイルではcryptsalt“sa”とした。

上記のようなperlスクリプトを用意しておき、

% ./mkaddusers ユーザ名 平文パスワード > スクリプトファイル名
...
% sudo sh スクリプトファイル名

のように登録する。

mkpasswd in whois package

whoisパッケージに上記の処理をするコマンドmkpasswdが存在するのでそれを使うというのがファイナルアンサー。