Fügen Sie sudoers über die Befehlszeile einen AD Domain-Benutzer hinzu

10

Ich richte eine Ubuntu 11.04-Server-VM für die Verwendung als Datenbankserver ein. Es würde jedem das Leben leichter machen, wenn sich Leute mit Windows-Anmeldeinformationen anmelden und den Computer möglicherweise sogar mit der aktuellen AD-gesteuerten Sicherheit arbeiten lassen könnten, die wir anderswo haben.

Die erste Etappe war wirklich einfach zu bewältigen - apt-get install likewise-openund ich war ziemlich geschäftlich tätig. Das Problem, das ich habe, ist, unsere Admins in die Sudoers-Gruppen zu bringen - ich kann anscheinend nichts zum Mitnehmen bekommen. Ich habe es versucht:

a) usermod -aG sudoers [username]
b) Hinzufügen der Benutzernamen in verschiedenen Formaten (DOMAIN \ user, user @ domain) zur sudoers-Datei.

Nichts davon schien zu dauern, aber mir wird immer noch gesagt "DOMAIN \ user ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet."

Wie füge ich den Sudoern nicht lokale Benutzer hinzu?

Wyatt Barnett
quelle

Antworten:

6

Ich stoße auf dieses Problem und hier ist meine Lösung:

Bearbeiten /etc/sudoers: mit folgenden Einträgen

Überprüfen Sie zuerst den Benutzer mit der Befehls-ID

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

Ergebnisse bei mir:

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 passwdund gid NUMBERSfunktioniert nicht für mich. DOMAIN\\domain^usersfunktioniert bei mir

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

Wie wir alle wissen, funktioniert auch ein einzelner AD-Benutzer

SMB\\<aduser01> ALL=(ALL) ALL
Jao Madn
quelle
2

Wir haben einen langen Domainnamen mit .local Sufix,

Nachbar der

%domainname\\group ALL=(ALL) ALL

noch die

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

hat funktioniert...

aber wenn ich nur den Gruppennamen so benutze:

%Domain^Admins ALL=(ALL) ALL

Es klappt.

user387622
quelle
Dies war die Lösung, die am Ende funktioniert hat. %Domain^Admins ALL=(ALL) ALL
MJP
2

Das Problem mit den anderen Vorschlägen ist das

  • Sie funktionieren nur, wenn Sie Zugriff auf das Unternehmens-LAN (oder VPN) haben.
  • Sie müssen die sudoers-Datei jederzeit auf jedem Computer verwalten
  • Als Bonus haben sie überhaupt nicht für mich gearbeitet

Stattdessen wollte ich etwas, das

  • speichert sowohl die Anmeldeinformationen als auch den Sudo-Zugriff zwischen
  • wird zentral verwaltet

Die eigentliche Lösung besteht darin, SSSD zu verwenden und das AD-Schema zu erweitern. Auf diese Weise ruft SSSD regelmäßig Sudo-Einstellungen und Benutzeranmeldeinformationen von AD ab und verwaltet einen lokalen Cache davon. Die sudo-Regeln werden dann in AD-Objekten gespeichert, in denen Sie Regeln sogar auf Computer, Benutzer und Befehle beschränken können - ohne jemals eine sudoers-Datei auf den Arbeitsstationen zu berühren.

Das genaue Tutorial ist viel zu lang, um es hier zu erklären. Die Schritt-für-Schritt-Anleitung und einige Skripte zur Unterstützung der Automatisierung finden Sie hier:

TL; DR:

ANZEIGE

Holen Sie sich die neueste Version von sudo , rufen Sie die Datei doc / schema.ActiveDirectory ab und importieren Sie sie (stellen Sie sicher, dass Sie den Domänenpfad entsprechend Ihrem Domänennamen ändern):

ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .

Überprüfen Sie dies mit ADSI Edit: Öffnen Sie den Schema- Namenskontext und suchen Sie nach der sudoRole- Klasse.

Erstellen Sie nun die sudoers-Organisationseinheit in Ihrem Domänenstamm. Diese Organisationseinheit enthält alle sudo-Einstellungen für alle Ihre Linux-Workstations. Erstellen Sie unter dieser Organisationseinheit ein sudoRole-Objekt. Um das sudoRole-Objekt zu erstellen, müssen Sie ADSI Edit verwenden. Nach dem Erstellen können Sie es jedoch mithilfe von Active Directory-Benutzern und -Computern ändern.

Nehmen wir an, ich habe einen Computer namens foo32linux , einen Benutzer namens stewie.griffin, und ich möchte, dass er alle Befehle mit sudo auf diesem Computer ausführt . In diesem Fall erstelle ich ein sudoRole-Objekt unter der Organisationseinheit sudoers . Für die sudoRole können Sie einen beliebigen Namen verwenden. Ich halte mich an den Computernamen, da ich Regeln pro Computer verwende. Stellen Sie nun die Attribute wie folgt ein:

  • sudoHost : foo32linux
  • sudoCommand : ALL
  • sudoUser : stewie.griffin

Für Befehle können Sie auch bestimmte Einträge verwenden, z. B. / bin / less oder was auch immer.

SSSD

Fügen Sie Ihrer /etc/sssd/sssd.conf mindestens Folgendes hinzu :

[sssd]
services = nss, pam, sudo

[domain/AD.FOOBAR.COM]
cache_credentials = True

SSSD aktualisiert seinen lokalen Cache alle paar Stunden mit den aktualisierten Regeln. Der einfachste Weg, dies zu testen, besteht darin, den Computer einfach neu zu starten. Melden Sie sich dann mit dem AD-Benutzer an und überprüfen Sie:

sudo -l

Es sollte alle zugehörigen Elemente auflisten, die Sie diesem Benutzer und Computer hinzugefügt haben. Kinderleicht!

bviktor
quelle
1
Es kann lang sein, aber da Links ungültig werden, ist es eine Regel, dass die wesentlichen Teile hier mit dem Link als Referenz aufgenommen werden.
TheWanderer
Eigentlich habe ich die wesentlichen Teile hinzugefügt, dh das Konzept. Ich könnte einige andere Teile auswählen, aber sie sind ohne den Rest und ohne das große Ganze zu verstehen nutzlos, so dass ich den Punkt nicht verstehe. Es würde mehr schaden als nützen.
Bviktor
ist eine Regel von AskUbuntu, dass jemand, der mitkommt, in der Lage sein muss, Ihre Antwort zu lesen und sein Problem zu lösen, ohne zu einer externen Site zu gehen.
TheWanderer
1
Weitere relevante Informationen hinzugefügt.
Bviktor
1

Die besten Informationen, die ich zu diesem Thema finden konnte, finden Sie hier:

http://www.mail-archive.com/[email protected]/msg00572.html

Grundsätzlich werden Sie aufgefordert, Ihre /etc/sudoersDatei mit der richtigen Konfiguration zu ändern , damit die Personen in der Administratorgruppe in AD auf alle Berechtigungen zugreifen können.

Wenn Sie selektiv und vom Benutzer eingeschränkt sein müssen, können Sie dies auch tun. Es wird jedoch gewarnt, dass Sie sicherstellen müssen, dass Sie den Namen des Benutzers auf dem Linux-System herausfinden, indem Sie den getend passwdBefehl wie gezeigt verwenden.

Martin Owens -doctormo-
quelle
Danke konnte wirklich nicht herausfinden, wo man suchen sollte. Für die Aufzeichnung funktioniert DOMIAN \\ Benutzername für Einzelpersonen.
Wyatt Barnett
0

Mit Centify direct habe ich einen Domänenbenutzer in die Datei / etc / sudoers aufgenommen.

(Domänenbenutzer) ALL = (ALL) ALL

user160720
quelle
0

Ich benutze den gemeinsamen Befehl

sudo usermod -a -G sudo DOMAIN\username 

und ersetzen DOMAIN\userdurch DOMAIN\\\username.

Paramanand Dubey
quelle