Я играю со сценарием для создания пользователя на нескольких машинах. Я бы не хотел знать пароль пользователя в любое время, но наличие открытых ключей SSH для меня вполне приемлемо. Пользователю нужно будет использовать sudo, поэтому для повышения привилегий необходим пароль. Может ли пользователь установить пароль для себя, не имея пароля для входа? Пока что все мои тесты этой схемы создания пароля не смогли найти пользователю способ изменить свой пароль.
Вот сценарий до сих пор.
# Must be run with root permissions
# sudo will be sufficient
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
# Create User
user=newadmin
adduser $user --disabled-password --gecos "New Admin"
adduser $user sudo
adduser $user adm
# Create and populate authorized keys
keys=/home/$user/.ssh/authorized_keys
mkdir /home/$user/.ssh
chmod 700 /home/$user/.ssh
touch $keys
chmod 600 $keys
cat <<EOT >> $keys
${relevant_content_for-authorized_keys-file_here}
EOT
chown -R $user:$user /home/$user/.ssh
# Check that the file exists and that ownership is correct
# TODO: check permissions of file and directory also
if [ `stat -c '%U' $keys`==$user ]
then
echo "Successfully created $keys for $user"
else
echo "Failed to configure $keys properly for $user"
fi
Если я должен, я прибегну к истечению срока действия короткого пароля, но я бы предпочел, чтобы они не могли повышать привилегии, пока их пароль не установлен на что-то, чего я не знаю.
echo "password:$user" | chpasswd
chage -M 4 $user
Да, я знаю, что я параноик, сисадмин. :-)
Ваш вопрос не имеет особого смысла, так как данный пользователь имеет доступ к sudo.
Итак ...
и
Я не уверен, как вы предоставляете им доступ с правами root или каким-либо образом ограничен доступ с правами root. Если вы используете конфигурацию sudo по умолчанию, то они знают свой пароль и могут его изменить. Если вы используете su, если у них есть root-доступ, они могут делать то, что они хотят, если вы не ограничите их такими инструментами, как apparmor или selinux
Возможно, вы сможете заблокировать учетную запись и заставить нового пользователя установить пароль при первом входе.
Из https://unix.stackexchange.com/questions/50699/force-pubkey-auth-user-to-set-password-at-first-login
Добавить это к вашему сценарию:
passwd -d $ user
chage -d0 $ user
blockquote>