У меня есть имя пользователя и ключ SSH для (гипотетического) парня, и мне нужно предоставить ему доступ администратора к серверу Linux (Ubuntu).
Я хочу, чтобы он мог войти через SSH, а затем сам установить свой пароль через безопасное соединение, вместо того, чтобы передавать пароль.
Я знаю, как сделать срок действия пароля и заставить его сбросить его при первом входе в систему. Но это не сработает, если у него уже есть какой-нибудь пароль, который я должен сказать ему.
Я думал о том, чтобы сделать пароль пустым - SSH не разрешит вход в систему, но тогда любой сможет su
войти в систему.
У меня вопрос, есть ли лучшая практика для создания учетных записей таким способом? Или установка пароля по умолчанию неизбежна?
sudo
, не так ли?USERNAME = NOPASSWD: /usr/local/bin/pwreset.sh
в/etc/sudoers
и сценарийpwreset.sh
выполняется командой/usr/bin/passwd USERNAME
он не будет нужен пароль для (пере) настройки его собственный пароль.Просто поместите текстовый файл с паролем внутри, в котором пользователи живут с правами 600. Пользователь входит в систему с ключом, меняет пароль и удаляет файл. С помощью скрипта с установленным битом suid вы можете даже создать что-то вроде passwd <textfile, не предоставляя пользователю права на чтение файла (права будут 060 с group = root)
источник
Установка пароля по умолчанию неизбежна. Моя процедура будет:
1) создать безопасный, случайный пароль (различный для каждого пользователя). Я использую генератор паролей в настройках учетной записи OSX, но вы можете использовать веб-сайт, такой как http://strongpasswordgenerator.com
2) Введите пароль для них надежно, например, лично или через http://www.privnote.com
3) принудительно выполнить сброс при первом входе в систему, поскольку вы уже знаете, как это сделать
источник