Я намагаюся автоматизувати створення користувачів Linux за допомогою bash
# Below password does NOT work
#USER_PASS="Eb*rx>BN?3x3SKd"
# Below password works!
USER_PASS="qwer1234"
# 2: Create sample user and set password
USER="sampleuser"
ssh root@$HOST "useradd -m $USER -s /bin/bash"
ssh root@$HOST "echo $USER:$USER_PASS | chpasswd"
ssh root@$HOST 'cat /etc/passwd'
echo "test ssh login with $USER"
sshpass -p $USER_PASS ssh $USER@$HOST
Вищезазначене працює добре, коли я використовую пароль 'qwer1234', але не працює, коли я використовую інший, починаючи з 'Eb *'.
Чи є правила щодо паролів, символів Linux тощо?
1
Список допустимих символів пароля для Linux
—
DavidPostill
Я не можу відповісти на чітке запитання щодо правил, але першою причиною того, як фантазійний пароль не працює, може бути перенаправлення на віддалену сторону, коли ви викликаєте
—
Каміль Маціоровський
ssh root@$HOST "echo $USER:$USER_PASS | chpasswd". Зараз BN?3x3SKdтам файл і його вміст є sampleuser:Eb*rx. Це через >.
Крім того, я думаю , що віддалена сторона отримує
—
Каміль Маціоровський
Eb*rx>BN?3x3SKdв лапках рядки , так *і ?може викликати оболонки підстановку.