[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:02257] Re:how to produce passwd



曽根@鳴門教育大学です。

>>>>> "K" == Kikutani Makoto <kikutani@xxxxxxxxxxxxxxx> writes:

K> きくたにです。
K> 小規模Linuxシステムのインストーラを書いてるのですが、
K> ユーザを追加する方法がわかりません。

K> つまり、ユーザ名とパスワードを入力させて、それに対応するpasswdファイル
K> 生成したいのですが、passwdコマンドじゃ今のシステムの/etc/passwd書き
K> 換えちゃうのでまずいです。

K> passwdコマンドと同じに暗号化されたパスワードを生成する方法はありますか?

perlを使えばcrypt()で平文のパスワードを暗号できるので、あとは適当な
saltを選ぶだけです。パスワードの暗号化を行なうサブルーチンは、これでい
いと思います。

sub MakePassword{
    local($Password) = @_;

# From: nem@xxxxxxxxxxxxxxxxxxxxxxxxxx (Nem W Schlecht)
# Newsgroups: comp.lang.perl.misc
# Subject: Re: Creating Salt for Crypt
# Date: Fri, 29 Mar 1996 07:49:18 JST
# Organization: North Dakota Higher Education Computing Network
# Message-ID: <4jf51e$jvc@xxxxxxxxxxxxxxxxxxxxxxxxxx>
#
#srand($$^time);                                 # random seed
@saltchars=(a..z,A..Z,0..9,'.','/');            # valid salt chars
$salt=$saltchars[int(rand($#saltchars+1))];     # first random salt char
$salt.=$saltchars[int(rand($#saltchars+1))];    # add second random salt char

    return crypt($Password,$salt);
}