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 $
ユーザの一括登録を行う場合などは-p
オプションを使ってパスワードも同時に設定すると便利。ただし、-p
オプションの引数は平文パスワードではなくハッシュドパスワードなのでperl
やpython
のcrypt
関数/モジュールを使って変換する。
$ sudo useradd -m -p `perl -e "print(crypt('平文パスワード', '戦略兵器制限交渉'));"` t92e005
まあ、これが一番単純かな。
$ python -c "import crypt; print crypt.crypt('平文パスワード','\$6\$塩\$')
>>> import crypt >>> print crypt.crypt('平文パスワード','\$6\$塩\$')
#!/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 スクリプトファイル名
のように登録する。
whoisパッケージに上記の処理をするコマンドmkpasswdが存在するのでそれを使うというのがファイナルアンサー。