web-dev-qa-db-ja.com

Linuxのadduser関数にハッシュされたパスワードを使用する

申し訳ありませんが、私はLinuxの初心者です。事前に定義された暗号化パスワードを使用して、Debianで新しいユーザーアカウントを作成する方法についての情報を探しています。

私はbashに関数を持っています。新しいユーザーのIDが/ etc/passwdファイルに表示されていない場合は、bashコマンドを実行します。

adduser -m -p <encrypted-password> <username>

これまでのところ良好ですが、ユーザー名とパスワードを含むすべてのデータはJSON出力に保存され、ユーザーのパスワードは(セキュリティ上の理由から)SHA-512によってすでにハッシュされています。ユーザーのパスワードはPHPスクリプトによって暗号化され、JSONに送信されます。

$hashed_password = crypt('Test007', '$6$rounds=5000$StJ.1Wji$');
echo looks like this: $6$rounds=5000$StJ.1Wji$cm6ZVl.XoIiQXaJAVHkqiteUGAqZoJ1Ee3dpHP2a6x6rG/kHg4k7ucMLrzHCvQA1TpQYP4eKnoFITVGcviqjU0

Adduser関数の後、/etc/shadowファイル、ハッシュされたパスワードがPHPによって生成された元のパスワードとは異なり、もちろんプレーンテキストでそのパスワードを使用して新しいユーザーにログインすることはできません(プレーンテキストで知っている場合でも)テキスト)。

簡単な方法はありますか、事前に定義された暗号化されたパスワードでユーザーアカウントを作成する方法はありますか? Linuxのuseradd関数が受け入れるハッシュ化パスワードを生成するにはどうすればよいですか?インターネットで解決策を見つけることができません。

4
scree

先頭の$6$rounds=5000以外は adduser に渡される値全体が有効なハッシュでなければならないため、その$6はおそらく問題の一部です。また(スクリプトフラグメントでは明らかではありません)、パラメーターの展開を回避するために、値を引用符で囲む必要があります。

adduser -m -p '$6$gehr8sgkkX$lMZ5bmb7c4HY76pnn0uUXA5wH51YE0Byp4rIfcA94gWrVvfeNVQsMwoW2erVuxzFScxRvaHOLFMqVSYCjVlTV/' oneshot

私はmkpasswdを使用して値を取得しました シャドウ用にSHA-512ハッシュされたパスワードを作成する方法?

ここで簡単に確認すると、/etc/shadowに格納されている値は、adduserの実行時に使用した値と一致しています。

3
Thomas Dickey