Я нашел руководство, которое объясняет, как установить пароль пользователя . Я пытаюсь автоматизировать его и отправить электронное письмо пользователю, например:
userid created with password XYZ.
request to change the initial password.
Согласно приведенному выше документу, необходимо создать зашифрованный пароль с помощью Python и передать его usermod
команде следующим образом:
usermod -p "<encrypted-password>" <username>
Есть ли другие простые способы сделать это? Я не хочу загружать какую-либо специальную утилиту для этого; оно должно быть максимально обобщено.
Изменить : Даже метод, указанный в приведенной выше ссылке, похоже, не работает для меня:
bash-3.00# python
Python 2.4.6 (#1, Dec 13 2009, 23:43:51) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt; print crypt.crypt("<password>","<salt>")
<sOMrcxm7pCPI
>>> ^D
bash-3.00# useradd -g other -p "sOMrcxm7pCPI" -G bin,sys -m -s /usr/bin/bash mukesh2
UX: useradd: ERROR: project sOMrcxm7pCPI does not exist. Choose another.
UX: useradd: sOMrcxm7pCPI name should be all lower case or numeric.
usermod
когда кто-то использует,ps
чтобы увидеть процесс, показывающий, что пароль виденОтветы:
Вы можете использовать
chpasswd
для этого, как это:Вы можете подключиться к
chpasswd
другим программамecho
, если это удобно, но это поможет.Редактировать: чтобы сгенерировать пароль в сценарии оболочки и затем установить его, вы можете сделать что-то вроде этого:
Для получения дополнительной информации
chpasswd
см. Http://linux.die.net/man/8/chpasswd.(Команда для создания пароля была взята с http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html )
источник
sudo echo "username:newpass" | chpasswd
? Поскольку повышенные разрешения отsudo
не проходят через канал, поэтомуchpasswd
будет работать как обычный пользователь. Это можно исправить перемещениемsudo
, как вecho "username:newpass" | sudo chpasswd
. Есть и другие проблемы, которые могут вызвать это сообщение об ошибке, но ошибки разрешений, подобные этой, являются, вероятно, наиболее распространенными.Вы можете использовать OpenSSL для генерации случайного пароля (в данном случае 16 символов):
Затем введите хешированный пароль
useradd
илиusermod
Кредит при необходимости: генерация пароля адаптирована из аналогичного метода, который использует
/dev/urandom
вместоopenssl
.источник
useradd должен работать (я сделал это на Ubuntu). Возможно, проверьте, что все ваши аргументы верны (группы существуют, путь к bash правильный). Вы можете запустить команду, используя только пароль и пользователя, а затем использовать userdel для удаления, а затем повторить попытку с другими параметрами, чтобы увидеть, что вызывает проблему (метод грубой силы).
Также есть newusers (см. Man-страницу), по крайней мере, в Ubuntu, где вы даете ему файл с паролем, например, info, включая пароли в виде простого текста, и он создает этих пользователей. Хороший способ сделать много пользователей одновременно.
источник
newusers
команды для UbuntuСамый простой способ, который я нашел:
источник
passwd: unrecognized option '--stdin'