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).

Installer Sudo

C'est simple. Il suffit d'entrer dans une console administrateur (ou root) :

pacman -S sudo


Configurer 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:

  • Autoriser les membres du groupe “users” à monter un périphérique:
%users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom


  • Autoriser l'utilisateur “jean” à éteindre l'ordinateur:
 jean  localhost=/sbin/shutdown -h now

Utiliser sudo avec le mot de passe root

Ajoutons :

 Defaults rootpw 

Utilisation de sudo

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.

Aller plus loin avec sudo et LDAP

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.

Configuration du serveur

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

Configuration des postes clients

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.

 
console/sudo.txt · Dernière modification: 2010/05/06 23:37 par tuxce
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki