スクリプトでユーザーを作成する

スクリプトでユーザーを作成する

以下のコマンドを発行して、特定のグループに新しいユーザーを作成したいと思います。

sudo ./create_user.sh "test" "firstname lastname"

スクリプトcreate_user.shは以下のようになります。

#!bin/bash
#sudo adduser --gecos "$2" --ingroup testgroup $1

しかし、問題は、ヒアドキュメントを使用してパスワードの挿入を回避する必要がある(単にテストする必要がある)のですが、構文がわかりません。

いくつかの解決策を試しましたが、どれもうまくいかなかったようです。

スクリプト内のヒアドキュメントのTry toは次のようになります

#<< EOF
#test
#test
#EOF

私の出力は次のようになります

#adding user 'test' ...
#adding new user 'test' <1003> with group 'testgroup' ...
#Enter new UNIX password:

答え1

adduserユーティリティを呼び出してpasswdパスワードを設定します。パスワードを要求する多くのプログラムと同様に、passwd出力は端末から行われる必要があります。したがって、ヒアドキュメント経由で入力を渡すことはできません。ヒアドキュメントでは一時ファイルまたはパイプが作成されますが、passwdどちらも受け入れられません。

パスワードでログインできないようにしたい場合は、オプションをパスすることができますadduser(少なくとも Debian バージョンでは) (SSH キーなどの他の方法を設定しておけば、それらを使用してログインすることはできます)。 にはパスワード ハッシュ (パスワードそのものではありません) を渡すオプションはありませんが、Linux シャドウ パスワード ユーティリティ スイートにはオプションがあります。--disabled-passwordadduseruseradd

アカウント作成時にパスワードを入力する場合は、端末から読み取るようにしてください。パスワードを他のソースpasswd(Webフォームなど)から取得する場合は、passwd期待する脚本 - 

これがヒアドキュメントを使用する練習である場合、パスワードは使用すべき場所ではありません。投稿されたものには、ヒアドキュメントで解決できる問題は見当たりません。

関連情報