昨日、passwd コマンドをバッチ処理させる方法として、expect コマンドを紹介した。
そしたら、rok さんがコメントで「chpasswd」コマンドを教えて下さった。Thanks, rok さん。
chpasswd コマンド
chpasswd コマンドは、標準入力から「ユーザー名とパスワード」の一覧を受け取って、パスワードを一括設定する。ユーザー名とパスワードは、一行ごとに「username:password」の書式で書く。
例えば、こんな風に使う。
$ cat my-passwd.txt foo:passwd-foo bar:passwd-bar hoge:fuga umi:yama $ cat my-passwd.txt > chpasswd
ちなみに、chpasswd は DES という方式で暗号化しているらしい。一方、passwd は MD5 でパスワード化している。MD5 の方が良さそう。chpasswd も MD5 の方式で暗号化する場合は、/etc/login.defs に次の行を加える。
MD5_CRYPT_ENAB yes
rok さんによると、Debian 系のコマンドとのこと。
んー、Debian系かどうかは実は知りません(^^;)。確認したのが手元の Ubuntu のマシンだったというだけで、今見たら openSUSE 10.3 にもありました。
ReplyDeleteFreeBSD とかだと /etc/master.passwd を直接編集して pw_mkdb(8) するとか、pw(8) を使うとかいろいろ出来ますね。
> んー、Debian系かどうかは実は知りません(^^;)。
ReplyDeleteおっとぉ。了解です。修正しました。
> FreeBSD とかだと...
FreeBSD には、そんなコマンドもあるのですか。知りませんでした。一応、Linux より FreeBSD の方を先に触ったはずなんですけどね ^^; 最近は Linux ばかり使ってます。。。