
Quero criar um novo usuário em um grupo específico ao emitir o comando abaixo.
sudo ./create_user.sh "test" "firstname lastname"
O create_user.sh
script é semelhante ao abaixo.
#!bin/bash
#sudo adduser --gecos "$2" --ingroup testgroup $1
Porém, o problema é que tenho que evitar a inserção de senha (deveria ser simplesmente teste) com um documento aqui, mas não tenho ideia da sintaxe.
Tentei algumas soluções, mas nenhuma delas pareceu funcionar.
É assim que meu documento Try to here no script se parece
#<< EOF
#test
#test
#EOF
minha saída é assim
#adding user 'test' ...
#adding new user 'test' <1003> with group 'testgroup' ...
#Enter new UNIX password:
Responder1
adduser
chama o passwd
utilitário para definir uma senha. Como muitos programas que solicitam uma senha, passwd
insiste que sua saída venha de um terminal. Portanto, você não pode passar a entrada por meio de um documento aqui - que cria um arquivo temporário ou um canal e passwd
não aceita nenhum dos dois.
Você pode passar adduser
(pelo menos a versão Debian) a --disabled-password
opção se não quiser fazer login com uma senha (você ainda poderá fazer login com outros métodos, como chaves SSH, se você configurá-los) . adduser
não tem a opção de passar o hash da senha (não a senha em si), mas useradd
o conjunto de utilitários de senha shadow do Linux tem.
Se você quiser inserir uma senha durante a criação da conta, certifique-se de passwd
lê-la no terminal. Se você obtiver a senha de alguma outra fonte (por exemplo, um formulário da web), ligue passwd
de umesperarroteiro - exemplo.
Se este for um exercício de uso de um documento aqui, a senha não está onde você deve usá-la. Não vejo nenhum problema que um documento aqui resolveria no que você postou.