passwdで使用されるデフォルトのSHA512ソルトとシャドウファイルに保存されているハッシュは何ですか?

passwdで使用されるデフォルトのSHA512ソルトとシャドウファイルに保存されているハッシュは何ですか?

useraddを使用してユーザーを追加し、-pフラグを使用して暗号化されたパスワードを指定したいと思います。私が使用しているUNIXシステムは、SHA512ハッシュを使用して/ etc / shadowファイルにパスワードを保存することを知りました。 /etc/pam.d/common-password を見ると、次のように表示されます。

# Explanation of pam_unix options:
#
# The "sha512" option enables salted SHA512 passwords.  Without this option,
# the default is Unix crypt.  Prior releases used the option "md5".
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs.
#
# See the pam_unix manpage for other options.

# here are the per-package modules (the "Primary" block)
password        [success=1 default=ignore]      pam_unix.so sha512

ハッシュを生成し、それを私のハッシュと比較できるように、塩が何であるかを知る必要があります。

useradd ... ... -p INSERT_HASHED_PASS_HERE

答え1

Salt は、2 人のユーザーが同じパスワードを使用する場合にパスワードのバリエーションが発生する [理想的には] ランダムに生成される値です。ランダムなソルトを使用すると、ユーザーは複数のシステムで同じパスワードを持つことができますが、これは明確ではありません。あなたがしたいことは、ハッシュを塩に漬ける目的を迂回するようです。

パスワードハッシュを一度作成し、自動化の目的で複数の場所で使用したいとします。

任意の文字列をソルトに渡すときにパスワードハッシュを生成するために使用できるいくつかのユーティリティがあります。しかし、先に述べたように、最初から塩の目的を否定することです。

答え2

passwd/etc/shadowファイルにユーザーパスワードを作成して追加するコマンドを使用するのが最善です。また、以前の回答で述べたように、ハッシュを一意に保つには塩がランダムでなければなりません。

ただし、コマンドでパスワードハッシュを生成したい場合は、次のコマンドを使用できます。

オプション1:

openssl passwd -6 -salt $(openssl rand -base64 12) yourpassword

ここで:

  • -6 は sha-512 暗号化アルゴリズムを表します。
  • openssl rand - ランダムな塩の生成
  • yourpasswordはハッシュしたいパスワードです。

オプション2:

mkpasswd --method=SHA-512 --stdin

これはうまくいきます。

引用:

Linuxハッシュパスワードの生成

手動でパスワードを生成

関連情報