Ao usar o cloud-init, em que ordem os usuários são criados?

1

Eu estou usando cloud-init para inicializar um RHEL Atomic Host VM.

Eu tenho o seguinte como meu arquivo 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

Quando a VM é inicializada pela primeira vez usando um arquivo ISO gerado por esse arquivo user-data , os usuários são criados. Pelo que vejo em /etc/passwd , o usuário auser é criado com o UID 1000 e o usuário muser é criado com o UID 1001.

Estamos implantando alguns softwares nesta VM que precisam conhecer o UID de muser antecipadamente antes da instalação. Sempre que uma VM for implantada usando esse arquivo ISO, muser sempre será criado após auser (e, portanto, muser sempre terá UID 1001)?

Eu pensei que talvez os usuários foram criados em ordem alfabética ou na ordem inversa em que são listados no arquivo user-data , então eu criei um outro arquivo user-data com 4 usuários para testar essa teoria. Mas essa teoria falhou, e eu não sabia dizer em que ordem o cloud-init cria os usuários.

Se ninguém souber em que ordem os usuários são criados, posso pelo menos presumir que muser sempre terá um UID de 1001?

    
por pacoverflow 30.10.2018 / 00:56

2 respostas

0

Por que isso importa? Você sempre pode obter o UID em tempo de execução com o comando id , ou seja:

id -n muser

Assim, você pode modificar seu script de instalação para pegar o UID executando esse comando, por exemplo:

uid=$(id -n muser)
echo "Installing mysoftware under UID $uid"
    
por 30.10.2018 / 01:29
0

Acontece que há um campo uid como mencionado aqui , então eu posso usar isso para garantir que cada usuário tenha um UID específico.

No entanto, como mencionado aqui , há um bug sobre como o campo uid é analisado. A adição de uid: 1001 não funcionou para definir o ID do usuário, mas a adição de uid: "1001" funcionou.

    
por 30.10.2018 / 23:54