
以下のコマンドを発行して、特定のグループに新しいユーザーを作成したいと思います。
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-password
adduser
useradd
アカウント作成時にパスワードを入力する場合は、端末から読み取るようにしてください。パスワードを他のソースpasswd
(Webフォームなど)から取得する場合は、passwd
期待する脚本 - 例。
これがヒアドキュメントを使用する練習である場合、パスワードは使用すべき場所ではありません。投稿されたものには、ヒアドキュメントで解決できる問題は見当たりません。