Configuration de sudo

Administrer et configurer sa machine peut parfois devenir pénible
si l'on applique le principe de base: 'ne jamais travailler en étant root'.
Cela évite de faire de fausses manoeuvres, surtout quand on a pas trop d'expérience
(comme de lancer un 'rm -rf /').

Une alternative préservant la sécurité est d'utiliser 'sudo':

meuh% dpkg -p sudo
Package: sudo
Priority: optional
Section: admin
Installed-Size: 316
Maintainer: Bdale Garbee 
Architecture: i386
Version: 1.6.2p2-1potato1
Depends: libc6 (>= 2.1.2), libpam0g, libpam-modules
Filename: dists/potato/updates/main/binary-i386/sudo_1.6.2p2-1potato1_i386.deb
Size: 122366
MD5sum: 837a528b2e0ad0971931794e1319b0f8
Description: Provides limited super user privileges to specific users.
 Sudo is a program designed to allow a sysadmin to give limited root
 privileges to users and log root activity.  The basic philosophy is to give
 as few privileges as possible but still allow people to get their work done.

L'installation est très simple, un 'apt-get install sudo'
en étant root devrait faire l'affaire.

La configuration n'est pas non plus trop difficile. Le fichier
la contenant est '/etc/sudoers'. ATTENTION, pour le modifier
il faut utiliser la commande visudo en étant root.
Il doit ressembler à ça:

meuh% visudo
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

# Host alias specification
Host_Alias      MA_MACHINE=meuh

# User alias specification
User_Alias     FULLTIMERS=paturette
User_Alias     PART_TIMERS=bouse,foin,lait

# Cmnd alias specification
Cmnd_Alias      SHUTDOWN=/sbin/shutdown
Cmnd_Alias      PPPD=/usr/sbin/pppd

# User privilege specification
root    ALL=(ALL) ALL
FULLTIMERS      MA_MACHINE=NOPASSWD:ALL
PART_TIMERS     MA_MACHINE=SHUTDOWN,PPPD

Moi je n'ai qu'une seule machine qui s'appelle 'meuh',
pour l'exemple je créée malgré tout un alias pour cette machine:

'Host_Alias MA_MACHINE=meuh'

Ensuite je défini deux alias pour deux types d'utilisateurs,
'FULLTIMERS' qui pourront exécuter toutes les commandes,
et 'PART_TIMERS' qui pourront juste lancer pppd

et éteindre la machine:

'User_Alias FULLTIMERS=paturette

User_Alias PART_TIMERS=bouse,foin,lait
'

On peut aussi définir des alias pour des commandes. J'en
definis deux:

'Cmnd_Alias SHUTDOWN=/sbin/shutdown
Cmnd_Alias PPPD=/usr/sbin/pppd
'

Puis on définit les privilèges:

'root ALL=(ALL) ALL': l'utilisateur 'root'
peut exécuter toutes les commandes sur toutes les machines.

'FULLTIMERS MA_MACHINE=NOPASSWD:ALL': les utilisateurs
qui font parti de l'alias 'FULLTIMERS' peuvent exécuter
toutes les commandes, sur toutes les machines faisant parti de l'alias
'MA_MACHINE', et ce sans entrer de mot de passe.

'PART_TIMERS MA_MACHINE=SHUTDOWN,PPPD': les utilisateurs
qui font parti de l'alias 'PART_TIMERS' peuvent exécuter
seulement les commandes 'SHUTDOWN' et 'PPPD',
sur toutes les machines faisant parti de l'alias 'MA_MACHINE',
mais doivent entrer leur mot de passe.

Il y a beaucoup d'autres possibilités offertent pas 'sudo',
n'hésitez pas à consulter les pages du man.