パスワードを表示せずにスクリプトから非対話式にユーザーアカウントを作成する方法は?

パスワードを表示せずにスクリプトから非対話式にユーザーアカウントを作成する方法は?

ページには次の内容があります。manuseradd

http://linux.die.net/man/8/adduser

-p、--password PASSWORD暗号化されたパスワード、crypt(3)によって返されます。デフォルトはパスワードを無効にすることです。注:プロセスを一覧表示するユーザーにはパスワード(または暗号化されたパスワード)が表示されるため、このオプションはお勧めできません。

パスワードがシステムのパスワードポリシーに準拠していることを確認する必要があります。

しかし、アカウントを作成する以外に他の方法はないようです。また、デフォルトではパスワードは無効になっているそうです。これはどういう意味ですか?

私はDebian Wheezyを使用しています

答え1

このスクリプトからインポートhttps://gist.github.com/Fluidbyte/6321547

プログラムと対話できるExpectという素晴らしい言語があります。これがあなたが探しているものです。いつでもこの設定を変更して、外部ソースからユーザー名とパスワードを取得できます。

#!/usr/bin/expect

set user "username"
set password "password"

send "useradd -m $user\r"

# Expect prompt
expect "$"

# Set password
send "passwd $user\r"

# Expect password prompt and send pass
expect "ass"
send "$password\r"

# Expect confirm
expect "ass"
send "$password\r"

関連情報