useradd -p сломан в 12.04 LTS?

У меня есть приложение для тестирования электронной почты, которое мне нужно настроить, и в его состав входит настройка как минимум нескольких сотен фиктивных учетных записей пользователей.

У меня был этот сценарий, чтобы я мог легко воссоздать почтовый магазин, например:

#!/bin/bash

NEW_USERS="./userlist"
HOME_BASE="/home/"

cat ${NEW_USERS} | \
while read USER PASSWORD
do
useradd -p ${PASSWORD} -m -d ${HOME_BASE}${USER} ${USER}
done

exit 0

Казалось, это сработало, но потом мое приложение взбесилось. Когда я пошел, чтобы проверить, ни у одного из моих аккаунтов не было рабочих логинов! У всех были пустые пароли.

(Примечание: приведенный выше скрипт работал для предыдущей установки сервера 12.04 LTS, см. Ниже)

Я попробовал только следующее:

useradd -p pass -m test

Но это не удалось аналогичным образом. Запуск пароля через crypt не имеет никакого значения вообще.

Интересно, что скрипт работал на другой установке Ubuntu 12.04 Server! Это было немного другое изображение (ubuntu-12.04-server-cloudimg-amd64-disk1 в отличие от моего нынешнего ubuntu-12.04.3-server-amd64), но почему бы что-то столь принципиальное изменение в функции (или, кажется, перестать работать вообще!)?

Любая помощь будет принята с благодарностью, так как я не с нетерпением жду добавления сотен пользователей вручную.


РЕДАКТИРОВАТЬ: Вот некоторые выходные данные /var/log/auth.log:

Oct 16 01:47:33 mailserver-vm su[27735]: Successful su for ubuntu by root
Oct 16 01:47:33 mailserver-vm su[27735]: + /dev/pts/0 root:ubuntu
Oct 16 01:47:33 mailserver-vm su[27735]: pam_unix(su:session): session opened for user ubuntu by root(uid=0)
Oct 16 01:47:36 mailserver-vm su[27790]: pam_unix(su:auth): authentication failure; logname=root uid=1000 euid=0 tty=/dev/ pts/0 ruser=ubuntu rhost=  user=test1
Oct 16 01:47:38 mailserver-vm su[27790]: pam_authenticate: Authentication failure
Oct 16 01:47:38 mailserver-vm su[27790]: FAILED su for test1 by ubuntu
Oct 16 01:47:38 mailserver-vm su[27790]: - /dev/pts/0 ubuntu:test1
Oct 16 01:47:45 mailserver-vm su[27791]: pam_unix(su:auth): authentication failure; logname=root uid=1000 euid=0 tty=/dev/ pts/0 ruser=ubuntu rhost=  user=test2
Oct 16 01:47:47 mailserver-vm su[27791]: pam_authenticate: Authentication failure
Oct 16 01:47:47 mailserver-vm su[27791]: FAILED su for test2 by ubuntu
Oct 16 01:47:47 mailserver-vm su[27791]: - /dev/pts/0 ubuntu:test2
Oct 16 01:47:56 mailserver-vm su[27792]: pam_unix(su:auth): authentication failure; logname=root uid=1000 euid=0 tty=/dev/ pts/0 ruser=ubuntu rhost=  user=test50
Oct 16 01:47:59 mailserver-vm su[27792]: pam_authenticate: Authentication failure
Oct 16 01:47:59 mailserver-vm su[27792]: FAILED su for test50 by ubuntu
Oct 16 01:47:59 mailserver-vm su[27792]: - /dev/pts/0 ubuntu:test50

Как вы можете видеть, я сначала пытаюсь выполнить su из root в свою обычную учетную запись пользователя (поскольку мне нужно проверить, работают ли их пароли). Попытка su в любой из учетных записей заканчивается неудачей, хотя их пароль должен быть установлен равным их имени пользователя (т. Е. Test1:test1, test2:test2, ...)

Кроме того, учетным записям назначается bash:

root@mailserver-vm:~/scripts# su test1
test1@mailserver-vm:/root/scripts$ cd
test1@mailserver-vm:~$ ps -p $$
  PID TTY          TIME CMD
31484 pts/0    00:00:00 bash
test1@mailserver-vm:~$

Попытка выполнить команды самостоятельно не дает никакого результата - команда, по-видимому, завершается успешно.

Например: вот вывод useradd -p t123 post:

root@mailserver-vm:~/scripts# useradd -p t123 post
root@mailserver-vm:~/scripts# 
root@mailserver-vm:~/scripts# su ubuntu
ubuntu@mailserver-vm:/root/scripts$ su post
Password:                <--- t123 entered
su: Authentication failure

Выход из grep post /etc/passwd /etc/shadow:

/etc/passwd:post:x:1013:1013::/home/post:/bin/sh
/etc/shadow:post:t123:15994:0:99999:7:::

Для записи, запустив пароль через crypt был такой же результат. Вот как я это сделал:

# password = whatever
# pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
$ useradd -p $pass user

РЕДАКТИРОВАТЬ: я закончил с использованием chpasswd, чтобы изменить пароли впоследствии, но я все еще озадачен, почему useradd -p перестал работать с предыдущей установки 12.04. Я действительно не смог найти что-то релевантное (возможно, обновление отбрасывало ввод открытого текста для поля пароля, как сказал gertvdijk ниже. Хотя я исправил свою проблему, если кто-то захочет дать ответ на исходный вопрос, я с радостью приму его.

0 ответов

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