cloud-init을 사용할 때 사용자가 생성되는 순서는 무엇입니까?

cloud-init을 사용할 때 사용자가 생성되는 순서는 무엇입니까?

나는 사용하고있다클라우드 초기화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로 생성됩니다.ausermuser

muser이 가상 머신에 일부 소프트웨어를 배포하고 있으며 이를 설치하기 전에 UID를 미리 알아야 합니다. 해당 ISO 파일을 사용하여 VM을 배포할 때마다 muser항상 나중에 생성됩니까 auser(따라서 muserUID는 항상 1001입니까)?

나는 사용자가 알파벳 순서로 생성되었거나 파일에 나열된 것과 반대 순서로 생성되었을 수 있다고 생각하여 해당 이론을 테스트하기 위해 4명의 사용자가 포함된 user-data다른 파일을 만들었습니다 . user-data하지만 이 이론은 실패합니다. cloud-init가 사용자를 생성하는 순서를 알 수 없습니다.

사용자가 생성되는 순서를 아무도 모른다면 최소한 muserUID가 항상 1001이라고 가정할 수 있습니까?

답변1

uid위와 같은 필드 가 있는 것으로 나타났습니다 .여기, 이를 사용하여 각 사용자가 특정 UID를 가지고 있는지 확인할 수 있습니다.

그러나 언급한 바와 같이여기, 이 필드를 구문 분석하는 방식에 오류가 있습니다 uid. 추가는 uid: 1001사용자 ID를 설정할 수 없지만 추가 uid: "1001"작업은 가능합니다.

답변2

이것이 왜 중요합니까? 다음 명령을 사용하여 런타임에 항상 UID를 가져올 수 있습니다 id.

id -n muser

따라서 다음 명령을 실행하여 UID를 가져오도록 설치 스크립트를 수정할 수 있습니다.

uid=$(id -n muser)
echo "Installing mysoftware under UID $uid"

관련 정보