Debian 8 Jessie : installer et configurer SUDO
Sun, 02/14/2016 - 15:25 — geek17Sudo (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 )
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
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:~$