SSSD manualsidor
sssd-sudo
5
Filformat och konventioner
sssd-sudo
Konfigurera sudo med SSSD-bakänden
BESKRIVNING
Denna manualsida beskriver hur man konfigurerar
sudo 8
till att fungera med sssd
8 och hur SSSD cachar sudo-regler.
Konfigurera sudo att samarbeta med SSSD
För att aktivera SSSD som en källa för sudo-regler, lägg till
sss till posten sudoers i
nsswitch.conf
5 .
Till exempel, för att konfigurera sudo till att först slå upp regler i
standardfilen sudoers
5 (som bör innehålla regler som
gäller för lokala användare) och sedan i SSSD, skall filen nsswitch.conf
innehålla följande rad:
sudoers: files sss
Mer information om att konfigurera sökordningen för sudoers från filen
nsswitch.conf liksom information om LDAP-schemat som används för att spara
sudo-regler i katalogen finns i
sudoers.ldap 5
.
Observera: för att använda nätgrupper eller
IPA-värdgrupper i sudo-regler behöver man även sätta
nisdomainname 1
korrekt till sitt NIS-domännamn (som är samma som
IPA-domännamnet när värdgrupper används).
Konfigurera SSSD till att hämta sudo-regler
All konfiguration som behövs på SSSD-sidan är att utöka listan över
tjänster med ”sudo” i avsnittet [sssd] i
sssd.conf 5
. För att snabba upp LDAP-uppslagningarna kan man även sätta
sökbasen för sudo-regler med alternativet
ldap_sudo_search_base.
Följande exempel visar hur man konfigurerar SSSD att hämta sudo-regler från
en LDAP-server.
[sssd]
config_file_version = 2
services = nss, pam, sudo
domains = EXEMPEL
[domain/EXEMPEL]
id_provider = ldap
sudo_provider = ldap
ldap_uri = ldap://example.com
ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
Det är viktigt att observera att på plattformar
där systemd stödjs finns det inget behov av att lägga till
”sudo”-leverantören till listan av tjänster, eftersom det blev frivilligt.
Dock måste sssd-sudo.socket vara aktiverat istället.
När SSSD är konfigurerat till att använda IPA som ID-leverantör aktiveras
sudo-leverantören automatiskt. Sudo-sökbasen konfigureras till att använda
IPA:s egna LDAP-träd (cn=sudo,$SUFFIX). Om någon annan sökbas är definierad
i sssd.conf kommer detta värde användas istället. Kompatibilitetsträdet
(ou=sudoers,$SUFFIX) behövs inte längre för IPA-sudo-funktionalitet.
Cachnings-mekanismen för SUDO-regler
Den största utmaningen vid utvecklingen av stöd för sudo i SSSD var att
säkerställa att köra sudo med SSSD som datakälla ger samma
användarupplevelse och är lika snabbt som sudo men tillhandahåller de
senaste reglerna så mycket som möjligt. För att uppfylla dessa krav
använder SSSD tre sorters uppdateringar. De refereras till som fullständig
uppdatering, smart uppdatering och regeluppdatering.
Den smarta uppdateringen hämtar periodiskt regler som
är nya eller ändrades efter den senaste uppdateringen. Dess primära mål är
att se till att databasen växer genom att bara hämta små inkrementella steg
som inte genererar stora mängder med nätverkstrafik.
Den fullständiga uppdateringen raderar helt enkelt alla
sudo-regler som är lagrade i cachen och ersätter dem med alla regler som är
sparade på servern. Detta används för att hålla cachen konsistent genom att
ta bort varje regel som var raderad från servern. Dock kan en fullständig
uppdatering skapa mycket trafik och den bör alltså bara köras ibland
beroende på storleken och stabiliteten hos sudo-reglerna.
Regeluppdateringen säkerställer att vi inte ger
användaren fler rättigheter än definierat. Den triggas varje gång
användaren kör sudo. Regeluppdateringen kommer hitta alla regler som är
tillämpliga på den användaren, kontrollera deras utgångstidpunkt och hämta
om dem om de gått ut. Ifall att någon av dessa regler saknas på servern
kommer SSSD göra en fullständig uppdatering vid sidan av för att fler regler
(som är tillämpliga på andra användare) kan ha raderats.
Om aktiverat kommer SSSD endast lagra regler som kan tillämpas på denna
maskin. Detta betyder att regler som innehåller ett av följande värden i
attributet sudoHost:
nyckelordet ALL
jokertecken (wildcard)
nätgrupp (i formen ”+nätgrupp”)
värdnamn eller fullständigt kvalificerat domännamn på denna maskin
en av IP-adresserna till denna maskin
en av IP-adresserna till nätverket (på formen ”adress/mask”)
Det finns många konfigurationsalternativ som kan användas för att justera
beteendet. Se ”ldap_sudo_*” i
sssd-ldap 5
och ”sudo_*” i
sssd.conf 5
.
Trimning av prestandan
SSSD använder olika mekanismer med mer eller mindre komplexa LDAP-filter för
att hålla de cachade sudo-reglerna uppdaterade. Standardkonfigurationen är
satt till värden som skall passa de flesta av våra användare, men följande
stycken innehåller några tips om hur man kan finjustera konfigurationen för
sina behov.
1. Indexera LDAP-attribut. Se till att följande
LDAP-attribut är indexerade: objectClass, cn, entryUSN eller
modifyTimestamp.
2. Sätt ldap_sudo_search_base. Sätt sökbasen till den
behållare som innehåller sudo-reglerna för att begränsa räckvidden för
uppslagningen.
3. Sätt fullt och smart uppdateringsintervall. Om ens
sudo-regler inte ändras ofta och man inte behöver snabba uppdateringar av
cachade regler på sina klienter kan man avsevärt öka
ldap_sudo_full_refresh_interval och
ldap_sudo_smart_refresh_interval. Man kan också
överväga att avaktivera den smarta uppdateringen genom att sätta
ldap_sudo_smart_refresh_interval = 0.
4. Om man har ett stort antal klienter kan man överväga att öka värdet på
ldap_sudo_random_offset för att fördela lasten på
servern bättre.