Sudo est un programme conçu pour permettre à un administrateur système de déléguer des privilèges root limités à des utilisateurs, et de d'enregistrer l'activité de root. La base de la philosophie est d'attribuer le minimum de privilèges possible tout en permettant à chaque utilisateur d'effectuer ses tâches convenablement.
L'utilisation abusive et systématique (lorsque sudo est utilisé pour donner les pleins pouvoirs sans mot de passe à tous les utilisateurs) qui est en faite par certaines distributions est controversée pas beaucoup d'utilisateurs. Sudo doit être utilisé intelligemment. Sous arch linux, il n'est pas requis par défaut. En revanche, il devient recommandé pour la compilation des paquetages avec makepkg: makepkg ne doit pas être lancé en tant que root pour des raisons de sécurité, mais l'utilisateur doit quand même pouvoir exécuter pacman avec sudo pour installer les dépendances manquantes (voir man makepkg).
C'est simple. Il suffit d'entrer dans une console administrateur (ou root) :
pacman -S sudo
Il faut éditer le fichier /etc/sudoers avec l'outil visudo (qui se comporte comme vi), toujours en console administrateur (ou root) :
visudo
On peut utiliser un autre éditeur en utilisant la variable EDITOR :
EDITOR=emacs visudo
permettra d'utiliser Emacs à la place de vim.
exemples de configuration:
%users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
jean localhost=/sbin/shutdown -h now
Ajoutons :
Defaults rootpw
Ensuite, on utilise sudo simplement, comme si on était en console administrateur (ou root) en rajoutant juste “sudo” devant les commandes.
Mettre à jour le système ?
sudo pacman -Syu
Note pour les fans de yaourt :
yaourt doit toujours se lancer en tant qu'utilisateur. Il utilise automatiquement sudo pour les opérations qui nécessitent les droits root (suppression/installation de paquetages).
yaourt -Syu
Des infos complémentaires sur la page des commandes de base.
Je suppose ici que l'authenitication de vos utilisateurs se fait via LDAP, comme décrit dans l'article sur la création des utilisateurs. On va compléter cela en demandant à sudo d'aller piocher les informations sur qui peut faire quoi dans la base de données LDAP.
Du point de vue du serveur, vous n'avez pas besoin de sudo. Il faut juste rajouter le schéma sudo_LDAP dans les schémas pris en compte par le serveur LDAP. Pour ce faire, il suffit de place le schéma sudo dans /etc/openldap/schemas/ et de rajouter include sudo.schema au début de la configuration du serveur.
Pour finir, il faut créer une arborescence pour sudo. Voici un exemple de fichier ldif pour créer cette arborescence :
# La racine de l'arborescence dn: ou=SUDOers,dc=archlinux,dc=fr ou: SUDOers objectClass: top objectClass: organizationalUnit # Les options par défaut dn: cn=defaults,ou=SUDOers,dc=archlinux,dc=fr objectClass: top objectClass: sudoRole cn: defaults description: Default sudoOption's go here sudoOption: !env_reset # Les droits de root ! dn: cn=root,ou=SUDOers,dc=archlinux,dc=fr objectClass: top objectClass: sudoRole cn: root sudoUser: root sudoHost: ALL sudoCommand: (ALL) ALL # On donne le droit à archibald de redémarrer samba sur la machine samba.archlinux.fr sans s'authentifier ! dn: ou=SUDOers,dc=archlinux,dc=fr objectClass: top objectClass: sudoRole cn: archibald sudoUser: archibald sudoHost: samba.archlinux.fr sudoCommand: /etc/rc.d/samba sudoOption: !authenticate
Du coté des clients, il faut que sudo soit installé avec l'option –with_ldap qui est normalement activé dans le PKGBUILD de sudo. Il suffit donc d'indiquer dans /etc/nsswitch.conf l'ordre dans lequel les informations devront venir. Je vous conseille de mettre
sudo: files ldap
dans /etc/nsswitch.conf.
Je supose ensuite que votre fichier /etc/ldap.conf est déjà configuré pour l'authentification des utilisateurs. Si ce n'est pas le cas, je vous conseille de retourner à l'ajout des utilisateurs avec LDAP. Il suffit de rajouter
sudoers_base ou=SUDOers,dc=thetys-retz,dc=net
dans ce fichier.