OS Ubuntu 18.04
Я пытаюсь добавить пользователя с паролем, домашним каталогом, создать группу с тем же именем, используя сценарий bash.
Я попытался:
sudo useradd -U -m -p $(openssl passwd -1 'some_password') test
Пользователь был создан, вот запись из / etc / passwd:
test:x:1004:1004::/home/test:/bin/sh
Домашний каталог создан:
/home/test
и группа была создана.
Проблема в том, что когда я пытаюсь сделать:
su test
Он запрашивает у меня пароль, но когда я ввожу пароль, я получаю следующую ошибку:
su: Authentication failure
PS: Я осознаю опасность добавления паролей в сценарии bash, но я делаю не это. Скрипт просит пользователя ввести пароль и использует его в скрипте следующим образом:
sudo useradd -U -m -p $(openssl passwd -1 '$password') $username
Любые идеи?
В той же системе я попытался использовать useradd, чтобы добавить пользователя test2, и ввел пароль. Я смог выполнить проверку с помощью test2
Для диагностики я создал bash-скрипт doit.sh, в котором были:
passwd='SomePassword1234'
username='test2'
sudo useradd -U -m -p $(openssl passwd -1 '$password') $username
Я запустил это как:
bash -x doit.sh
Вот результат:
ubuntu@myserver:~$ bash -x doit.sh
+ passwd=SomePassword1234
+ username=test2
++ openssl passwd -1 '$password'
+ sudo useradd -U -m -p '$1$okAtvbfD$hVwD0AoMWR5AiTw.9Bztf.' test2
и я пытаюсь su:
ubuntu@myserver:~$ su test2
Password:
su: Authentication failure
ubuntu@myserver:~$
Это цитата, "$ password" будет буквально так: $password
а не значение переменной $ password. "$password"
здесь требуется.
sudo useradd -U -m -p $(openssl passwd -1 "$password") $username