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
Sudo est déjà installé sur mon VPS OVH mais si ce n'est pas le cas sur votre serveur, suivez les instructions qui suivent.
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.
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@server1:~$ apt-get update
Reading package lists... Done
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
dev@server1:~$ sudo !!
sudo apt-get update
Ign:1 http://deb.debian.org/debian stretch InRelease
Get:2 http://deb.debian.org/debian stretch-updates InRelease [88.5 kB]
Get:3 http://security.debian.org stretch/updates InRelease [62.9 kB]
Hit:4 http://deb.debian.org/debian stretch Release
Hit:6 http://nginx.org/packages/mainline/debian stretch InRelease
Fetched 151 kB in 0s (412 kB/s)
Reading package lists... Done
Commentaires
bonjour, dans la partie "nano /ect/sudoers", après avoir mis le nom d'utilisateur , comment on sort de la ? ou comment on enregistre ?
Bonjour,
Control + X pour demander la fermeture de nano
Si le fichier a été modifié, vous devrez alors confirmer si les modifications doivent être enregistrées ou non
marrant, il est écrit dans le fichier qu'il faut l'éditer avec `visudo` et tu propose nano ;-)
Ajouter un commentaire