Aggiungi l'utente del dominio AD ai sudoer dalla riga di comando


10

Sto configurando una VM per server Ubuntu 11.04 da utilizzare come server di database. Renderebbe la vita di tutti più semplice se potessimo avere l'accesso delle persone usando le credenziali di Windows e forse anche far funzionare la macchina con l'attuale sicurezza basata su AD che abbiamo altrove.

La prima parte di questo è stata davvero facile da realizzare - apt-get install likewise-opened ero praticamente in affari. Il problema che sto riscontrando è coinvolgere i nostri amministratori nei gruppi di sudoers: non riesco a trovare nulla da prendere. Ho provato:

a) usermod -aG sudoers [username]
b) aggiungere i nomi utente in diversi formati (DOMINIO \ utente, utente @ dominio) al file sudoers.

Nessuno dei quali sembrava prendere, mi viene comunque detto "DOMAIN \ user non è nel file sudoers. Questo incidente verrà segnalato."

Quindi, come posso aggiungere utenti non locali ai sudoer?

Risposte:


6

Incontro questo problema ed ecco la mia soluzione:

Modifica /etc/sudoers: con le seguenti voci

Prima controlla l'aduser usando l'id comando

#id <AD user>( #id domain\\aduser01 )

Risultati sui miei:

SMB\aduser01@linux01:~/Desktop$ id smb\\aduser02
uid=914883676(SMB\aduser02) gid=914883073(SMB\domain^users) groups=914883073(SMB\domain^users),1544(BUILTIN\Administrators),1545(BUILTIN\Users),914883072(SMB\domain^admins)

getent passwde gid NUMBERSnon funziona per me. DOMAIN\\domain^usersper me va bene

%SMB\\domain^users ALL=(ALL) ALL

come tutti sappiamo, anche i singoli utenti di AD funzionano

SMB\\<aduser01> ALL=(ALL) ALL

2

abbiamo un nome di dominio lungo con .local sufix,

vicino il

%domainname\\group ALL=(ALL) ALL

né il

%domainname.local\\group ALL=(ALL) ALL

lavorato...

ma se uso solo il nome del gruppo in questo modo:

%Domain^Admins ALL=(ALL) ALL

Funziona.


Questa è stata la soluzione che ha funzionato alla fine. %Domain^Admins ALL=(ALL) ALL
mjp

2

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!


1
Potrebbe essere lungo ma, poiché i collegamenti diventano non validi, è una regola che le parti essenziali siano incluse qui, con il collegamento come riferimento.
TheWanderer,

In realtà, ho aggiunto le parti essenziali, ovvero il concetto. Potrei scegliere alcune altre parti, ma sono inutili senza il resto e senza capire il quadro generale, quindi non riesco a vedere il punto. Farebbe più male che bene.
bviktor,

è una regola di AskUbuntu che qualcuno che arriva deve essere in grado di guardare la tua risposta e risolvere il loro problema senza andare su un sito esterno.
TheWanderer,

1
Aggiunte informazioni più pertinenti.
bviktor,

1

Le migliori informazioni che ho trovato sull'argomento sono qui:

http://www.mail-archive.com/likewise-open-discuss@lists.likewisesoftware.com/msg00572.html

Praticamente ti chiede di modificare il tuo /etc/sudoersfile con la configurazione corretta per consentire alle persone nel gruppo del tuo amministratore su AD di avere accesso a tutti i privilegi.

Se devi essere selettivo e limitare per utente, puoi farlo anche tu. Ma avverte che è necessario assicurarsi di scoprire qual è il nome dell'utente sul sistema Linux usando il getend passwdcomando come mostrato.


Grazie davvero non sono riuscito a capire dove cercare. Per la cronaca, DOMIAN \\ nome utente funziona per gli individui.
Wyatt Barnett,

0

Usando Centify direct ho aggiunto l'utente di dominio nel file / etc / sudoers.

(Utente dominio) ALL = (ALL) ALL


0

Uso il comando comune

sudo usermod -a -G sudo DOMAIN\username 

e sostituisci DOMAIN\usercon DOMAIN\\\username.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.