我在用云初始化初始化 RHEL Atomic Host VM。
我的文件如下user-data
:
#cloud-config
groups:
- ourgroup
users:
- name: muser
primary_group: ourgroup
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_authorized_keys:
- ssh-rsa [REDACTED]
- name: auser
primary_group: ourgroup
passwd: [REDACTED]
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_pwauth: True
当虚拟机首次使用从该user-data
文件生成的 ISO 文件启动时,将创建用户。从我在 中看到的/etc/passwd
,auser
用户是使用 UID 1000 创建的,并且muser
用户是使用 UID 1001 创建的。
muser
我们正在该虚拟机上部署一些软件,在安装之前需要提前知道 UID 。每当使用该 ISO 文件部署 VM 时,muser
总是会在之后创建auser
(因此muser
UID 始终为 1001)?
我认为用户可能是按照字母顺序或与文件中列出的相反顺序创建的user-data
,因此我创建了另一个user-data
包含 4 个用户的文件来测试该理论。但这个理论失败了,我无法判断 cloud-init 创建用户的顺序。
如果没有人知道用户创建的顺序,我至少可以假设muser
UID 始终为 1001 吗?
答案1
答案2
为什么这有关系?您始终可以使用以下命令在运行时获取 UID id
,即:
id -n muser
因此,您可以修改安装脚本以通过运行该命令来获取 UID,例如:
uid=$(id -n muser)
echo "Installing mysoftware under UID $uid"