Zentralisierte Rechteverwaltung mit Sudo über LDAP.: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | = Sudo Schema | + | = Sudo Schema und Regeln integrieren = |
| − | Da sudo-ldap obsolet ist, | + | 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 | + | == Schema bereitstellen == |
| − | + | Wir erstellen die LDIF-Datei für das Sudo-Schema manuell unter /etc/ldap/schema/sudo.ldif. | |
| − | * | + | * vim /etc/ldap/schema/sudo.ldif |
<pre> | <pre> | ||
dn: cn=sudo,cn=schema,cn=config | dn: cn=sudo,cn=schema,cn=config | ||
| Zeile 23: | Zeile 23: | ||
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> | </pre> | ||
| − | |||
== Schema laden == | == Schema laden == | ||
| Zeile 29: | Zeile 28: | ||
* ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/sudo.ldif | * ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/sudo.ldif | ||
| − | == Sudo- | + | == Sudo-Regeln erstellen == |
| − | Wir definieren | + | Wir definieren eine Regel für die Gruppe "sudo" und Standardeinstellungen. |
| − | * | + | * vim /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 47: | Zeile 47: | ||
sudoRunAsUser: ALL | sudoRunAsUser: ALL | ||
sudoRunAsGroup: ALL | sudoRunAsGroup: ALL | ||
| − | + | </pre> | |
* 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 | + | == SSSD aktualisieren == |
| − | + | Damit die Änderungen sofort greifen, starten wir SSSD neu. | |
* systemctl restart sssd | * systemctl restart sssd | ||
| Zeile 59: | Zeile 59: | ||
== Verifizierung == | == Verifizierung == | ||
| − | + | * sudo -l | |
| − | |||
| − | * sudo | ||
Version vom 2. April 2026, 09:49 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.
- vim /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 ) )
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.
- vim /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
- 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
Verifizierung
- sudo -l