Cette page de manuel décrit comment configurer sudo(8) pour travailler avec sssd(8) et comment SSSD met en cache les règles sudo.
Pour activer SSSD comme source pour les règles de sudo, ajouter sss à l'entrée sudoers dans nsswitch.conf(5).
Par exemple, pour configurer sudo pour rechercher d'abord les règles dans le fichier standard sudoers(5) (qui doit contenir les règles qui s'appliquent aux utilisateurs locaux) et ensuite dans SSSD, le fichier nsswitch.conf doit contenir la ligne suivante :
sudoers: files sss
Plus d'informations sur la configuration de l'ordre de recherche de sudoers depuis le fichier nsswitch.conf, mais aussi les informations sur le schéma LDAP qui est utilisé pour stocker les règles sudo dans l'annuaire sont disponibles dans sudoers.ldap(5).
Note: in order to use netgroups or IPA hostgroups in sudo rules, you also need to correctly set nisdomainname(1) to your NIS domain name (which equals to IPA domain name when using hostgroups).
All configuration that is needed on SSSD side is to extend the list of services with "sudo" in [sssd] section of sssd.conf(5). To speed up the LDAP lookups, you can also set search base for sudo rules using ldap_sudo_search_base option.
L'exemple suivant montre comment configurer SSSD pour télécharger les règles sudo à partir d'un serveur LDAP.
[sssd] config_file_version = 2 services = nss, pam, sudo domains = EXAMPLE [domain/EXAMPLE] id_provider = ldap sudo_provider = ldap ldap_uri = ldap://example.com ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
It's important to note that on platforms where systemd is supported there's no need to add the "sudo" provider to the list of services, as it became optional. However, sssd-sudo.socket must be enabled instead.
When SSSD is configured to use IPA as the ID provider, the sudo provider is automatically enabled. The sudo search base is configured to use the IPA native LDAP tree (cn=sudo,$SUFFIX). If any other search base is defined in sssd.conf, this value will be used instead. The compat tree (ou=sudoers,$SUFFIX) is no longer required for IPA sudo functionality.
Le plus grand défi lors du développement de la prise en charge de sudo dans SSSD était de de s'assurer que l'utilisation d'un sudo exploitant SSSD comme source de données fournissait la même expérience utilisateur et était aussi rapide que sudo, tout en conservant le jeu de règles le plus à jour possible. Pour satisfaire ces exigences, SSSD utilise trois types de mises à jour. Elles sont appelées actualisation complète, rafraîchissement intelligent et rafraîchissement des règles.
Le rafraîchissement intelligent télécharge périodiquement les règles qui sont nouvelles ou qui ont été modifiées après la dernière mise à jour. Son but premier est d'éviter à la base de données de grossir en allant chercher de petits incréments qui ne génèrent pas de gros de trafic réseau.
Le rafracîchissement complèt supprime simplement toutes les règles sudo stockées dans le cache et les remplace par toutes les règles qui sont stockées sur le serveur. Ceci est utilisé pour assurer la cohérence de cache en supprimant toutes les règles qui ont été supprimées du serveur. Cependant, un rafraîchissement complet peut produire beaucoup de trafic et doit n'être exécuté qu'occasionnellement selon la taille et de la stabilité des règles sudo.
Le rafraîchissement des règles fait en sorte de ne pas accorder à l'utilisateur plus d'autorisations que défini. Il est déclenché chaque fois que l'utilisateur exécute sudo. L'actualisation des règles trouvera toutes les règles qui s'appliquent à cet utilisateur, vérifie leur date d'expiration et les retéléchargera si elles ont expiré. Dans le cas où l'une de ces règles est manquante sur le serveur, SSSD programmera en parallèle un rafraîchissement complet hors ligne car d'autres règles (s'appliquant à d'autres utilisateurs) peuvent avoir été supprimées.
Si activé, SSSD stocke uniquement les règles qui peuvent être appliquées à cette machine. En d'autres termes, ce sont les règles qui contiennent une des valeurs suivantes dans l'attribut de sudoHost :
Il existe de nombreuses options de configuration qui peuvent être utilisées pour ajuster le comportement. Consulter « ldap_sudo_ * » dans sssd-ldap(5) et « sudo_ * » dans sssd.conf(5).
sssd(8), sssd.conf(5), sssd-ldap(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-files(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(8), sss_ssh_knownhostsproxy(8), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5) sssd-systemtap(5)
The SSSD upstream - https://github.com/SSSD/sssd/