Propagazione privileg fallisce se il relativo gruppo è vuoto
L’ho verificato sul privilegio (gruppo locale) internet. Rimuovendo il
privilegio via octonet a tutti gli utenti, questo non viene tolto da
/etc/group. Il risultato è che gli utenti restano nel gruppo (ed hanno
accesso ad internet) anche se non figurano su octonet.
Controllando lato octofuss-client ho visto che in risposta alla
richiesta dell’elenco privilegi (funzione action_sync_privileges in
/usr/lib/python3/dist-packages/octofussclient/client.py) in cui viene
eseguita una richiesta per RPC ad octofussd (per ‘privileges’) viene
restituito un dizionario in cui sono presenti solo i privilegi/gruppi
locali che sono assegnati ad almeno un utente.
Dato che octofuss-client propaga i permessi modificando solo le righe
di /etc/group che fanno riferimento ad un gruppo associato ai
privilegi che ottiene da octofussd (per evitare giustamente di toccare
il contenuto degli altri gruppi non gestiti), questo comporta che i
membri del gruppo locale internet non vengono toccati.
Lo stesso effetto si presenta anche nell’output di octofussctl, quando
nessun utente ha il privilegio, questo non viene riportato nell’output
di ls netperms/bygroup/. Occorre che il privilegio invece sia mostrato
nell’output e trasmesso ad octofuss-client (verificando che poi nel
caso sia vuoto, il gruppo in /etc/group venga correttamente svuotato).