Я пытаюсь написать linode stackscript, который представляет собой файл bash, который запускается от имени пользователя root при создании нового образа. Он может запрашивать такие параметры, как USER, KEY и, возможно, но не идеально, PASSWORD.
В скрипте создаю пользователя «bob», затем
adduser --disabled-password --gecos "" --shell /bin/bash $USER
adduser $USER sudo
Мы создаем пользователя с сертификатом и без пароля, пользователь, войдя в систему через SSH, не может sudo, так как он запрашивает пароль, которого не существует.
Я предполагаю, что здесь есть 2 варианта:
Я нашел решение, используя вариант 1. Я не слышал о chpasswd, но, похоже, он работает с автоматическим сценарием. Теперь у пользователя есть пароль для sudo.
adduser --disabled-password --gecos "" --shell / bin / bash $ USER adduser $ USER sudo echo "$ USER: $ PASS" | sudo chpasswd
Вместо отключения пароля создайте пользователя без пароля.
обходной путь
adduser --disabled-password --gecos "" --shell /bin/bash $USER
usermod -g sudo $USER
passwd -d $USER