Как к паролям пользователя аппарата с помощью passwd без подсказки?

Я пишу сценарий для добавления большого количества пользователей к системе. Часть этого включает устанавливающие пароли по умолчанию для каждого пользователя. Как может я пароли пользователей аппарата без него предлагающий мне пароль впереди?

К сожалению, passwd, кажется, не берет аргумент, указывая новый пароль для установки. Я использую Ubuntu 11.10.

27
задан 31 March 2016 в 21:09

7 ответов

Попробуйте usermod:

usermod --password PASSWORD USERNAME

Единственное, для этого нужна предварительно зашифрованная строка пароля, которую вам нужно будет сначала сгенерировать.

27
ответ дан 23 November 2019 в 01:50

Вы должны использовать устаревание пароля и настроить пользователей так, чтобы они меняли свой пароль при первом входе в систему. См. Эту статью .

0
ответ дан 23 November 2019 в 01:50

Вы должны посмотреть на команду chpasswd (если она доступна в вашем linux flavor):

echo 'userid:newpasswd' | chpasswd

Или вы можете создать файл userid:passwd для каждой учетной записи в отдельной строке.

Вот и все.

19
ответ дан 23 November 2019 в 01:50

Вдохновленный идеей Эрика Смита, сочетание openssl passwd и usermod -p сработало. Сгенерировать хэшированное значение пароля вместе со значением соли.

$ openssl passwd -1  -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.

Затем скопировать зашифрованную строку в usermod. Убедитесь, что она обернута одинарной кавычкой.

$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root

Проверьте в теневом файле.

$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::
2
ответ дан 23 November 2019 в 01:50

Вот хорошее решение, всего одна строка:

useradd -p $(openssl passwd -1 "$pass") "$user"

Я могу добавить другие параметры, например -m, чтобы создать домашний каталог и т. Д.

1
ответ дан 5 January 2021 в 23:48
(echo user; echo password) | passwd

у меня работает как на физическом хосте, так и в контейнере, для различных ОС (ubuntu xenial, bionic, debian9,10, centos75,76, coreos)

echo user:password | chpasswd

работает для некоторых ОС, но в некоторых ОС, таких как debian9,10, будет отображаться ошибка не удается подключиться к / var / run / nscd / socket поскольку он использует /etc/nsswitch.conf для определения места хранения пароля.

0
ответ дан 5 January 2021 в 23:48
echo -e "NEW_PASSWORD\nNEW_PASSWORD" | passwd username
0
ответ дан 27 April 2021 в 02:02

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

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