2009-02-17

chpasswd -- passwd を shell script で使うためのコマンド

昨日、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 系のコマンドとのこと。

2 comments:

  1. んー、Debian系かどうかは実は知りません(^^;)。確認したのが手元の Ubuntu のマシンだったというだけで、今見たら openSUSE 10.3 にもありました。

    FreeBSD とかだと /etc/master.passwd を直接編集して pw_mkdb(8) するとか、pw(8) を使うとかいろいろ出来ますね。

    ReplyDelete
  2. > んー、Debian系かどうかは実は知りません(^^;)。

    おっとぉ。了解です。修正しました。

    > FreeBSD とかだと...

    FreeBSD には、そんなコマンドもあるのですか。知りませんでした。一応、Linux より FreeBSD の方を先に触ったはずなんですけどね ^^; 最近は Linux ばかり使ってます。。。

    ReplyDelete