Il problema con gli altri suggerimenti è quello
- funzionano solo quando si ha accesso alla LAN aziendale (o VPN)
- devi mantenere il file sudoers su ogni singolo computer per tutto il tempo
- come bonus, non hanno funzionato per me - affatto
Invece, volevo qualcosa che
- memorizza nella cache sia le credenziali sia l'accesso sudo
- è gestito centralmente
La soluzione effettiva sta utilizzando SSSD ed estendendo lo schema AD. In questo modo SSSD recupera periodicamente le impostazioni sudo e le credenziali dell'utente da AD e ne mantiene una cache locale. Le regole sudo vengono quindi archiviate in oggetti AD, dove è possibile limitare le regole anche a computer, utenti e comandi, tutto ciò senza mai toccare un file sudoers sulle workstation.
Il tutorial esatto è troppo lungo per essere spiegato qui, ma puoi trovare la guida passo-passo e alcuni script per aiutarti con l'automazione qui:
TL; DR:
ANNO DOMINI
Prendi l'ultima versione di sudo , ottieni il file doc / schema.ActiveDirectory , quindi importalo (assicurati di modificare il percorso del dominio in base al tuo nome di dominio):
ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .
Verificare con ADSI Edit: aprire il contesto di denominazione dello schema e cercare la classe sudoRole .
Ora crea l' unità organizzativa sudoers sulla radice del tuo dominio, questa unità organizzativa conterrà tutte le impostazioni sudo per tutte le tue workstation Linux. In questa unità organizzativa, creare un oggetto sudoRole. Per creare l'oggetto sudoRole è necessario utilizzare ADSI Edit, ma una volta creato, è possibile utilizzare Utenti e computer di Active Directory per modificarlo.
Supponiamo che io abbia un computer chiamato foo32linux , un utente chiamato stewie.griffin e voglio lasciargli eseguire tutti i comandi con sudo su quel comp. In questo caso, creo un oggetto sudoRole sotto l' unità organizzativa sudoers . Per il sudoRole puoi usare qualsiasi nome tu voglia: mi attengo al nome del computer poiché utilizzo le regole per computer. Ora imposta i suoi attributi come segue:
- sudoHost : foo32linux
- sudoCommand : ALL
- sudoUser : stewie.griffin
Per i comandi puoi usare anche voci specifiche, come / bin / less o altro.
SSSD
Aggiungi al tuo /etc/sssd/sssd.conf , almeno:
[sssd]
services = nss, pam, sudo
[domain/AD.FOOBAR.COM]
cache_credentials = True
SSSD aggiorna la sua cache locale con le regole aggiornate ogni poche ore, ma il modo più semplice per testarlo è semplicemente riavviare il computer. Quindi accedi con l'utente AD e controlla:
sudo -l
Dovrebbe elencare tutti i desideri correlati che hai aggiunto a quell'utente e quel computer. Vai tranquillo!
%Domain^Admins ALL=(ALL) ALL