-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Documentation request
The cloud-init examples suggest that using hashed_passwd and lock_passwd for already-exsting users
Here is the excerpt from the documentation
# Add users to the system. Users are added after groups are added.
# Note: Most of these configuration options will not be honored if the user
# already exists. Following options are the exceptions and they are
# applicable on already-existing users:
# - 'plain_text_passwd', 'hashed_passwd', 'lock_passwd', 'sudo',
# 'ssh_authorized_keys', 'ssh_redirect_user'.
So I try the following cloud-init
#cloud-config
users:
- default
- name: ubuntu
shell: /bin/bash
hashed_passwd: $6$ViQQI4kReDWrps3y$TSzStkHkxYKn6VlaWRVrhwZSsoVe3nxolR58Iz0063Rp1Ba4w8gFtep9uy4N8cpmcF7Ey0fYrm2lmcYEHT.E./
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
However, I am unable to loginvia console. When I ssh into it and I run sudo cat /etc/shadow | grep ubuntu , I get ubuntu:!$6$ViQQI4kReDWrps3y$TSzStkHkxYKn6VlaWRVrhwZSsoVe3nxolR58Iz0063Rp1Ba4w8gFtep9uy4N8cpmcF7Ey0fYrm2lmcYEHT.E./:20484:0:99999:7:::
Notice the exclamation mark before the hashed password, which means that we are unable to use this password for login
When I try the following cloud-init, I am able to login via console. Notice that I did not even need to set lock_passwd
users:
- default
- name: ubuntu
shell: /bin/bash
sudo: ALL=(ALL) NOPASSWD:ALL
chpasswd:
expire: false
users:
- {name: ubuntu, password: $6$ViQQI4kReDWrps3y$TSzStkHkxYKn6VlaWRVrhwZSsoVe3nxolR58Iz0063Rp1Ba4w8gFtep9uy4N8cpmcF7Ey0fYrm2lmcYEHT.E./}
Image used: https://cloud-images.ubuntu.com/jammy/20251216/jammy-server-cloudimg-amd64.img
ubuntu@vmwithpassword:~$ cloud-init --version
/usr/bin/cloud-init 25.2-0ubuntu1~22.04.1
ubuntu@vmwithpassword:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
fwiw, sudo virt-cat -a ubuntu-22.04-server-cloudimg-amd64.img /etc/passwd | grep ubuntu and sudo virt-cat -a ubuntu-22.04-server-cloudimg-amd64.img /etc/shadow | grep ubuntu return nothing, which mean that the image by iitself does not have the user and that the user is created later (early during cloud-init)