
useradd
CLI で コマンドを使用しながら、新しいユーザーの暗号化されたログイン パスワードを作成したいと思います。 オプションを使用すると-p
パスワードを作成できることはわかっていますが、このオプションを使用してもパスワードは暗号化されません。 また、 を使用してpasswd [username]
新しいユーザーを作成した後useradd
、 コマンドを使用して別途暗号化されたパスワードを作成できることもわかっていますが、前述したように、 コマンドを使用して暗号化されたパスワードを作成する方法を知りたいですuseradd
。
答え1
Perl を使うこともできます:
perl -e "print crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
または、モジュールを使用した Python crypt
:
python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
foo
: 暗号化するパスワード$6
: 暗号化の種類。この場合は SHA-512$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)
: 暗号化ソルト。この場合はランダムな 32 文字の文字列です。
関連useradd
:
useradd [...] -p"$(perl -e "print crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
または:
useradd [...] -p"$(python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
答え2
ユーザー ID を作成してからpasswd --expire
それを使用することで、管理者が作成したパスワードによるユーザー管理の煩わしさをすべて省くことができます。 出典man passwd
:
-e, --expire
Immediately expire an account's password. This in effect can force
a user to change his/her password at the user's next login.
答え3
Ubuntu では passwd が --stdin をサポートしていないため、以下を試すことができます:
perl -e "print crypt('password','sa');"
見るhttps://administratosphere.wordpress.com/2011/06/16/generating-passwords-using-crypt3/
答え4
私の場合、Ubuntu 18.04 LTS では以下が機能しました:
echo 'your_password' > /tmp/pw.txt
pw="$(makepasswd --crypt-md5 --clearfrom=/tmp/pw.txt)"
sudo useradd -p "${pw}" your_username
rm -f /tmp/pw.txt
まず、以下をmakepasswd
使用してインストールする必要があります。(Ubuntu または Debian の場合。他のディストリビューションについては Google で検索してください):
sudo apt install makepasswd