Zentralisierte Rechteverwaltung mit Sudo über LDAP.: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Sudo Schema via SSSD integrieren = Da sudo-ldap obsolet ist, nutzen wir das Schema, welches für SSSD optimiert ist. Dieses befindet sich bei aktuellen Debi…“)
 
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Sudo Schema via SSSD integrieren =
+
= Sudo Schema und Regeln integrieren =
  
Da sudo-ldap obsolet ist, nutzen wir das Schema, welches für SSSD optimiert ist. Dieses befindet sich bei aktuellen Debian-Systemen oft im Dokumentationspfad von sssd-common oder muss manuell erstellt werden.
+
Da sudo-ldap obsolet ist, muss das Schema manuell in den slapd importiert werden, damit die OU "sudo" mit Sudo-Objekten befüllt werden kann.
  
== Schema finden und konvertieren ==
 
  
Falls die Datei nicht unter /usr/share/doc/sssd-common/ liegt, erstellen wir das benötigte LDIF direkt, um unabhängig von Paketpfaden zu sein.
+
== Schema bereitstellen ==
  
* cat <<EOF > /etc/ldap/schema/sudo.ldif
+
Wir erstellen die LDIF-Datei für das Sudo-Schema manuell unter /etc/ldap/schema/sudo.ldif.
 +
 
 +
*cat <<EOF > /etc/ldap/schema/sudo.ldif
 +
<pre>
 
dn: cn=sudo,cn=schema,cn=config
 
dn: cn=sudo,cn=schema,cn=config
 
objectClass: olcSchemaConfig
 
objectClass: olcSchemaConfig
Zeile 21: Zeile 23:
 
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.9 NAME 'sudoOrder' DESC 'an integer to order the sudoRole entries from more to less specific' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
 
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.9 NAME 'sudoOrder' DESC 'an integer to order the sudoRole entries from more to less specific' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
 
olcObjectClasses: ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' DESC 'Sudoer Entries' SUP top STRUCTURAL MUST cn MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoOption $ sudoRunAsUser $ sudoRunAsGroup $ sudoNotBefore $ sudoNotAfter $ sudoOrder $ description ) )
 
olcObjectClasses: ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' DESC 'Sudoer Entries' SUP top STRUCTURAL MUST cn MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoOption $ sudoRunAsUser $ sudoRunAsGroup $ sudoNotBefore $ sudoNotAfter $ sudoOrder $ description ) )
 +
</pre>
 
EOF
 
EOF
  
Zeile 27: Zeile 30:
 
* ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/sudo.ldif
 
* ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/sudo.ldif
  
== Sudo-Rollen anlegen ==
+
== Sudo-Regeln erstellen ==
  
Wir definieren nun in der bestehenden OU "sudo" eine Rolle für die Gruppe "sudo".
+
Wir definieren eine Regel für die Gruppe "sudo" und Standardeinstellungen.
  
* cat <<EOF > /root/sudo_rule.ldif
+
*cat <<EOF > /root/sudo_rule.ldif
 +
<pre>
 
dn: cn=defaults,ou=sudo,dc=it213,dc=int
 
dn: cn=defaults,ou=sudo,dc=it213,dc=int
 
objectClass: sudoRole
 
objectClass: sudoRole
Zeile 45: Zeile 49:
 
sudoRunAsUser: ALL
 
sudoRunAsUser: ALL
 
sudoRunAsGroup: ALL
 
sudoRunAsGroup: ALL
 +
</pre>
 
EOF
 
EOF
 
 
* ldapadd -xD cn=admin,dc=it213,dc=int -w 123Start$ -f /root/sudo_rule.ldif
 
* ldapadd -xD cn=admin,dc=it213,dc=int -w 123Start$ -f /root/sudo_rule.ldif
  
== SSSD Neustart ==
+
== SSSD aktualisieren ==
  
Nachdem die Daten im LDAP vorhanden sind, muss SSSD den Cache erneuern.
+
Damit die Änderungen sofort greifen, starten wir SSSD neu.
  
 
* systemctl restart sssd
 
* systemctl restart sssd
  
== Verifizierung ==
+
== Benutzer Wenn noch nicht geschehen ==
 +
* ldapadduser thomas it
 +
* ldapadduser tina it
  
Prüfe, ob der Benutzer Thomas (der in der Gruppe sudo ist) die Berechtigungen erhält.
+
== Passwort ==
 +
* ldapsetpasswd thomas
 +
* ldapsetpasswd tina
  
* sudo -l -l
+
== Gruppe zuweisen ==
 +
* ldapaddusertogroup thomas sudo
 +
* ldapaddusertogroup tina sudo

Aktuelle Version vom 2. April 2026, 10:29 Uhr

Sudo Schema und Regeln integrieren

Da sudo-ldap obsolet ist, muss das Schema manuell in den slapd importiert werden, damit die OU "sudo" mit Sudo-Objekten befüllt werden kann.


Schema bereitstellen

Wir erstellen die LDIF-Datei für das Sudo-Schema manuell unter /etc/ldap/schema/sudo.ldif.

  • cat <<EOF > /etc/ldap/schema/sudo.ldif
dn: cn=sudo,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: sudo
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser' DESC 'User(s) who may run sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.2 NAME 'sudoHost' DESC 'Host(s) who may run sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.3 NAME 'sudoCommand' DESC 'Command(s) to be executed' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.4 NAME 'sudoOption' DESC 'Options passed to sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.5 NAME 'sudoRunAsUser' DESC 'User(s) impersonated by sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.6 NAME 'sudoRunAsGroup' DESC 'Group(s) impersonated by sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.7 NAME 'sudoNotBefore' DESC 'Start of time interval for which the entry is valid' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.8 NAME 'sudoNotAfter' DESC 'End of time interval for which the entry is valid' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.9 NAME 'sudoOrder' DESC 'an integer to order the sudoRole entries from more to less specific' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
olcObjectClasses: ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' DESC 'Sudoer Entries' SUP top STRUCTURAL MUST cn MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoOption $ sudoRunAsUser $ sudoRunAsGroup $ sudoNotBefore $ sudoNotAfter $ sudoOrder $ description ) )

EOF

Schema laden

  • ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/sudo.ldif

Sudo-Regeln erstellen

Wir definieren eine Regel für die Gruppe "sudo" und Standardeinstellungen.

  • cat <<EOF > /root/sudo_rule.ldif
dn: cn=defaults,ou=sudo,dc=it213,dc=int
objectClass: sudoRole
cn: defaults
sudoOption: env_keep+=SSH_AUTH_SOCK

dn: cn=admin_role,ou=sudo,dc=it213,dc=int
objectClass: sudoRole
cn: admin_role
sudoUser: %sudo
sudoHost: ALL
sudoCommand: ALL
sudoRunAsUser: ALL
sudoRunAsGroup: ALL

EOF

  • ldapadd -xD cn=admin,dc=it213,dc=int -w 123Start$ -f /root/sudo_rule.ldif

SSSD aktualisieren

Damit die Änderungen sofort greifen, starten wir SSSD neu.

  • systemctl restart sssd

Benutzer Wenn noch nicht geschehen

  • ldapadduser thomas it
  • ldapadduser tina it

Passwort

  • ldapsetpasswd thomas
  • ldapsetpasswd tina

Gruppe zuweisen

  • ldapaddusertogroup thomas sudo
  • ldapaddusertogroup tina sudo