Я пытаюсь следовать инструкции:
autoinstall:
...
user-data:
write_files:
- content: |
cloud_init_has_run
path: /cloud_init_flag
users:
- default
- name: kim
passwd: <hash>
shell: /bin/bash
lock-passwd: false
ssh_pwauth: True
chpasswd: { expire: False }
sudo: ALL=(ALL) NOPASSWD:ALL
groups: users, admin
Или поставить юзеров, т.к. один и тот же уровень автоустановки
users:
- default
- name: kim
passwd: <hash>
shell: /bin/bash
lock-passwd: false
ssh_pwauth: True
chpasswd: { expire: False }
sudo: ALL=(ALL) NOPASSWD:ALL
groups: users, admin
autoinstall:
Оба юзера не работают, а вот write_files реально работает. ls /home/
не показывает ким, а только моего пользователя по умолчанию в удостоверении личности.
Кто-нибудь может объяснить, как заставить работать блокировку пользователей?
пароль, кажется, никогда не работает, я попробовал следующие команды для создания хеша:
mkpasswd -m sha512crypt -s
mkpasswd - -method=SHA-512 --rounds=4096 -s
Я просто поместил выходной хэш в passwd: "
, но вход всегда завершается ошибкой с неправильным паролем, я могу войти только с мой ssh-ключ. Есть идеи, как указать здесь пароль?
В /var/log/cloud-init.log мы видим:
2021-09-30 15:18:39,580 - __init__.py[DEBUG]: Adding user testuser
2021-09-30 15:18:39,580 - subp.py[DEBUG]: Running hidden command to protect sensitive input/output logstring: ['useradd', 'testuser', '--comment', 'testuser', '--groups', 'users,sudo,admin,cdrom,dip,plugdev,lpadmin,lxd,libvirt', '--password', 'REDACTED', '--shell', '/bin/bash', '-m']
2021-09-30 15:18:39,606 - subp.py[DEBUG]: Running command ['passwd', '-l', 'testuser'] with allowed return codes [0] (shell=False, capture=True)
2021-09-30 15:18:39,619 - util.py[DEBUG]: Reading from /etc/sudoers (quiet=False)
Наконец-то я понял, почему это не работает, /etc/shadow какой-то неправильный:
testuser:!$6$02H0ZRN.QfL7$G8/Jh7bZNlIEPAsGKZOBUog89a559t/LSWXAyqncOpJytlls8hsGHQgeBdWGoYhedZ0v7bsVNFlRf/S0Tusug1:18900:0:99999:7:::
Экстра !
вызвать сбой. Удалите его, чтобы он работал. Это ошибка или есть какой-то
правильный флаг: lock_passwd: false
вместо lock-passwd: false