Может ли пользователь с ssh-ключами установить свой пароль после входа в систему с ключами, не зная своего пароля?

Я играю со сценарием для создания пользователя на нескольких машинах. Я бы не хотел знать пароль пользователя в любое время, но наличие открытых ключей 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

Да, я знаю, что я параноик, сисадмин. :-)

0
задан 12 May 2015 в 19:25

1 ответ

Ваш вопрос не имеет особого смысла, так как данный пользователь имеет доступ к sudo.

Итак ...

  1. Да, использование может изменить пароль на клавишах SSH.

и

  1. Пользователь с root-доступом может изменить пароль любого другого пользователя в системе или заблокировать учетную запись, не зная пароля целевой учетной записи.

Я не уверен, как вы предоставляете им доступ с правами 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

0
ответ дан 12 May 2015 в 19:25

Другие вопросы по тегам:

Похожие вопросы: