
我尝试遵循以下说明:
- https://stackoverflow.com/a/61868231/1492613
- https://gist.github.com/leogallego/a614c61457ed22cb1d960b32de4a1b01#file-ubuntu-cloud-virtualbox-sh-L46-L56
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/
没有显示 kim,只有身份中的我的默认用户。
有人能解释一下如何让用户阻止起作用吗?
更新
passwd 似乎永远不起作用,我尝试以下命令来创建哈希:
mkpasswd -m sha512crypt -s
mkpasswd --method=SHA-512 --rounds=4096 -s
我只是将输出哈希放入passwd: "<hash>"
,但登录总是因密码错误而失败,我只能使用我的 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
答案1
这对我来说很有用,使用20.04.3
服务器安装程序(subiquity 21.08.2
)
#cloud-config
autoinstall:
# r00tme
user-data:
users:
- default
- name: kim
passwd: $6$.c38i4RIqZeF4RtR$hRu2RFep/.6DziHLnRqGOEImb15JT2i.K/F9ojBkK/79zqY30Ll2/xx6QClQfdelLe.ZjpeVYfE8xBBcyLspa/
lock_passwd: false
shell: /bin/bash
groups: [adm,sudo]
ssh:
allow-pw: true
authorized-keys: []
install-server: true
几个关键点
ubuntu
这将创建没有密码的默认用户。它还将创建第二个用户,kim
并使用给定的密码哈希。- 直到第一次启动时才会创建用户。安装程序会添加配置以
cloud-init
创建用户。 - 必须
groups
采用 YAML 列表语法。 - 我做到了不是包括一个
identity
部分。