Add new comment

Debian 8 Jessie : installer et configurer SUDO

Sudo (dont l'abréviation pourrait être Super-user do) est un programme qui permet à un utilisateur standard (sans droits d'accès root) d'exécuter des commandes en tant qu'utilisateur root.
Cela permet de ne pas être systématiquement connecté en tant que root sur sa machine (avec le risque de casser des trucs par erreur) tout en permettant l'utilisation des droits root sur une ligne de commande spécifique.
Il faudra pour cela utiliser le préfix sudo devant la commande.

Contrairement à Ubuntu, sudo n’est pas installé par défaut sur Debian 8. Nous verrons donc dans cet article comment installer, configurer et utiliser sudo.

 

Installation de sudo

Une fois que vous êtes connecté avec votre utilisateur "standard" sur votre Debian, commencer par taper la commande su pour ouvrir une session en tant que root (le mot de passe associé est requis).
Puis lancer l'installation du paquet sudo en tapant la commande apt-get install sudo

dev@myserver:~$ su
Password:
root@myserver:/home/dev# apt-get install sudo
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  sudo
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 855 kB of archives.
After this operation, 2,390 kB of additional disk space will be used.
Get:1 http://ftp.fr.debian.org/debian/ jessie/main sudo amd64 1.8.10p3-1+deb8u3 [855 kB]
Fetched 855 kB in 0s (1,944 kB/s)
Selecting previously unselected package sudo.
(Reading database ... 19305 files and directories currently installed.)
Preparing to unpack .../sudo_1.8.10p3-1+deb8u3_amd64.deb ...
Unpacking sudo (1.8.10p3-1+deb8u3) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17+deb8u3) ...
Setting up sudo (1.8.10p3-1+deb8u3) ...
Processing triggers for systemd (215-17+deb8u3) ...

 

Configuration de base de sudo

Toujours en tant que root, ouvrir le fichier /etc/sudoers avec votre éditeur de texte préféré (pour moi c'est nano smiley)

nano /etc/sudoers

Puis ajouter la ligne <user>      ALL=(ALL:ALL) ALL  juste après la ligne root    ALL=(ALL:ALL) ALL
En prenant soin de remplacer <user> pour votre nom d'utilisateur standard (non root).
Exemple ci-dessous avec mon utilisateur dev.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
dev     ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Pour ceux qui ne souhaitent pas modifier le fichier de configuration ci-dessus, un utilisateur peut également utiliser la commande sudo s'il est membre du groupe sudo.

Vous pouvez donc simplement exécuter la commande adduser dev sudo pour que l'utilisateur dev soit autorisé à utiliser sudo.
Attention : dans ce cas, une nouvelle session SSH doit être ouverte pour l'utilisateur dev pour que ça fonctionne.

adduser dev sudo

 

Utilisation de sudo

Plus besoin de vous connecter systématiquement en root pour éditer des fichiers de configuration ou exécuter des commandes nécessitant des droits d'accès root.
Il suffit simplement de taper le préfix sudo devant votre commande.

Exemple pour modifier la liste des dépôts de votre Debian :

sudo nano /etc/apt/sources.list

Ou pour mettre à jour votre système :

sudo apt-get update
sudo apt-get upgrade

 

La commande !! qui va bien

Lorsqu'on tape une ligne de commande sous Linux, on oublie trop souvent qu'il faut les accès root pour pouvoir l'exécuter.
Et même si on a oublié de mettre sudo devant notre commande, en exécutant simplement sudo !! la dernière commande sera automatiquement ré-exécutée en mode sudo yes

Exemple en action :

dev@myserver:~$ apt-get update
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
dev@myserver:~$ sudo !!
sudo apt-get update
[sudo] password for dev:
Ign http://ftp.fr.debian.org jessie InRelease
Hit http://ftp.fr.debian.org jessie-updates InRelease
Hit http://ftp.fr.debian.org jessie Release.gpg
Hit http://ftp.fr.debian.org jessie-updates/main Sources
Hit http://security.debian.org jessie/updates InRelease
Get:1 http://ftp.fr.debian.org jessie-updates/main amd64 Packages/DiffIndex [367 B]
Hit http://ftp.fr.debian.org jessie-updates/main Translation-en
Hit http://ftp.fr.debian.org jessie Release
Hit http://security.debian.org jessie/updates/main Sources
Hit http://ftp.fr.debian.org jessie/main Sources
Hit http://ftp.fr.debian.org jessie/main amd64 Packages
Hit http://security.debian.org jessie/updates/main amd64 Packages
Hit http://ftp.fr.debian.org jessie/main Translation-en
Hit http://security.debian.org jessie/updates/main Translation-en
Fetched 367 B in 1s (285 B/s)
Reading package lists... Done
dev@myserver:~$

 

You must have Javascript enabled to use this form.