Assegnare gruppo ldap a file su client
Ciao Simone, abbiamo l’esigenza di cambiare i permessi di un paio di files del programma Veyon, perché siano visibili a menu e soprattutto eseguibili solo dagli utenti appartenenti al gruppo veyon-master gruppo di sistema creato sul server. Per comodità ho provato a farlo modificando l’apposito role veyon del fuss-client. Ho aggiunto i seguenti tasks:
- name: check permissions on /usr/bin/veyon-master
file:
path: /usr/bin/veyon-master
mode: 0750
owner: root
group: veyon-master
- name: check permissions on /usr/share/applications/veyon-master.desktop
file:
path: /usr/share/applications/veyon-master.desktop
mode: 0640
owner: root
group: veyon-master
ma non vanno a buon fine perché ansible sembra sia in grado di usare solo i gruppi presenti in /etc/group
Ho aggiunto allora il seguente:
- name: Ensure group "veyon-master" exists
group:
name: veyon-master
state: present
ma viene creato in /etc/group un gruppo locale veyon-master con gid diverso per cui nessun utente riesce più a lanciare il programma. Per ovviare ho modificato il task aggiungendo anche il gid del gruppo ldap:
- name: Ensure group "veyon-master" exists
group:
name: veyon-master
state: present
gid: 10002
Così funzionaerebbe tutto ma il problema è che il gid del gruppo veyon-master cambia da server a server, per cui ho cercato il modo di ricavare il gid giusto col task:
- name: Create variable from command
command: "echo $(getent -s ldap group veyon-master | tr ':' ' ' | awk '{print $3}' )"
register: gidvm
da usare nel task precedente:
- name: Ensure group "veyon-master" exists with gid
group:
name: veyon-master
state: present
gid: "{{ gidvm | int }}"
ma il risultato è stato:
TASK [veyon : Ensure group "veyon-master" exists] ****************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "groupadd: GID '0' already exists\n", "name": "veyon-master"}
E’ come se Ansible non fosse in grado di accedere ai dati di ldap. Non sono riuscito a cavare un ragno dal buco nemmeno col modulo getent. Dove sbaglio? Come possiamo fare?