autoinstall/user-data 的用户部分根本不起作用?

autoinstall/user-data 的用户部分根本不起作用?

我尝试遵循以下说明:

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部分。

相关内容