나는 사용하고있다클라우드 초기화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 파일을 사용하여 가상 머신을 처음 시작할 때 생성됩니다. 에서 볼 수 있듯이 사용자는 UID 1000으로 생성되고 /etc/passwd
사용자 는 UID 1001로 생성됩니다.auser
muser
muser
이 가상 머신에 일부 소프트웨어를 배포하고 있으며 이를 설치하기 전에 UID를 미리 알아야 합니다. 해당 ISO 파일을 사용하여 VM을 배포할 때마다 muser
항상 나중에 생성됩니까 auser
(따라서 muser
UID는 항상 1001입니까)?
나는 사용자가 알파벳 순서로 생성되었거나 파일에 나열된 것과 반대 순서로 생성되었을 수 있다고 생각하여 해당 이론을 테스트하기 위해 4명의 사용자가 포함된 user-data
다른 파일을 만들었습니다 . user-data
하지만 이 이론은 실패합니다. cloud-init가 사용자를 생성하는 순서를 알 수 없습니다.
사용자가 생성되는 순서를 아무도 모른다면 최소한 muser
UID가 항상 1001이라고 가정할 수 있습니까?
답변1
답변2
이것이 왜 중요합니까? 다음 명령을 사용하여 런타임에 항상 UID를 가져올 수 있습니다 id
.
id -n muser
따라서 다음 명령을 실행하여 UID를 가져오도록 설치 스크립트를 수정할 수 있습니다.
uid=$(id -n muser)
echo "Installing mysoftware under UID $uid"