2016-05-25 5 views
1

に設定ファイルに保存されたユーザーのパスワードを、渡すことができます。ユーザ名とパスワードは設定ファイルに保存されます。は、どのように私は、スクリプトを使用してLinuxユーザを作成しようとしていますのpasswdコマンド

設定ファイルは、私は、configファイルで提供されたユーザ名とパスワードを使用してLinuxのユーザーを作成していますシェルスクリプトを使用して

username="user1" 
password="passxxx" 

以下の通りです。

if [ -n "$username" ] then 

    password="$line" 
    sudo adduser $username 
    sudo passwd $username 

ここで私は設定ファイルにパスワードを与える必要があります。通常、パスワード情報を更新するために必要なパスワードを2回入力する必要があります。入力せずにパスワードを更新する方法はありますか(設定ファイルで提供されているパスワードを使用してください)。

+0

関連はありませんが、[shellcheck](HTTPをチェックアウト:// www.shellcheck.net/) – andlrc

+0

あなたは 'passwd'オプション' -e'をチェックアウトする必要があります(有効期限は、次回ログイン時にパスワードを変更するには、ユーザーが必要)と、ユーザが行った場合には、 '-i'(非アクティブは、アカウントをロックX日以内にログインしないでください)、デフォルトのパスワードを持つユーザーアカウントを持つシステムにはなりません。悪い考え、セキュリティ上の問題。 – DevSolar

答えて

3

バッチモードでパスワードを設定する代わりにpasswdの使用chpasswd

:それはあなたが他のシェルを使っている

sudo chpasswd <<<"$username:$password" 

あるいは、(バージョンのではないbashの> = 3.0):

echo "$username:$password" | sudo chpasswd 
+0

@JohnKugelman、ああ、ありがとう!私は答えを入力する際に​​非常に慎重でした。 – Sasha

+1

私はあなたのソリューションを試してみましたが、それはエラーが「$ユーザー名:$パスワード」とそれを固定.I示し| sudo chpasswd、それは正常に動作します – Adhz

+0

申し訳ありませんが、完全な修正はecho "$ username:$ password"です。 (| COMMAND'と 'COMMAND <<<" STRING''は、現代のbashで同等でなければなりません ' 'string' をエコー)sudoは両方とも[OK]をする必要があり、 – Adhz

関連する問題