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, см. Ниже)

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

[ 111]

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

1
задан 16 October 2013 в 11:48

0 ответов

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

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