Étiquette : sudo

7 novembre 2016 /

La commande sudo  permet de fournir à un utilisateur de confiance, un accès avec privilèges sur un système, sans avoir à partager le mot de passe de l’utilisateur root.

Lorsque les utilisateurs ayant des droits sudo, précèdent une commande administrative avec sudo, ils sont invités à entrer leur mot de passe. Une fois authentifié, et en supposant que la commande est autorisée, la commande administrative est exécutée comme si elle est exécutée par l’utilisateur root.

On commence en éditant le fichier /etc/sudoers via la commande visudo:

visudo

On cherche les lignes qui donne le droit sudo au utilisateur du groupe Wheel:

## Allows people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL

Cette ligne de configuration demandera un mot de passe lors de l’appel de sudo

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

Cette ligne de configuration ne demandera pas de mot de passe lors de l’appel de sudo

On supprime le croisillon de la ligne « #%wheel ALL….  » souhaitée pour activer la configuration voulue.

Une fois que l’on a utilisé sudo dans un terminal, on dispose de 20 minutes pour utiliser sudo avec d’autres commandes, sans que la console nous redemande un mot de passe. Pour passer de 20 minute à une journée (en minute):

Defaults env_reset,timestamp_timeout=1440

Pour une durée illimitée, on met « -1 » :

Defaults env_reset,timestamp_timeout=-1

Puis on sauvegarde et on quitte visudo.
Il ne nous reste plus qu’a ajouter l’utilisateur voulu au groupe wheel.

Pour cela nous éditons le fichier /etc/group :

vi /etc/group

Et nous ajoutons le login de l’utilisateur (ici antoine) à qui l’on donne le droit sudo directement dans le groupe wheel:

root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:starmate,antoine
mail:x:12:mail,postfix
uucp:x:14:

Antoine peut maintenant utiliser sudo pour exécuter des commandes comme si il était connecté en root.

Quelques règles de sécurité

Pour empêcher sudo d’agir ailleurs qu’en mode console, il faut déclarer le paramètre suivant dans le fichier /etc/sudoers lors de son édition avec visudo :

Defaults requiretty

Pour enregistrer dans un fichier de logs spécifique, les actions effectuer via sudo  :

Defaults log_host,log_year,logfile="/var/log/sudoers"

Il peut être également utile de bloquer certaine commande comme « su« , « passwd« , « bash » ou encore « sh« , pour cela il suffit de faire précéder la commande à bloquer par un point d’exclamation « !« .
Dans ce cas, nous allons directement déclarer l’utilisateur, ici Antoine, pour lui donner les droits sudo dans le fichier sudoers (donc sans passer par le groupe wheel) de cette façon, via visudo:

antoine ALL=(ALL) ALL,!/bin/su,!/usr/bin/passwd,!/bin/bash,!/bin/sh

Ce qui aura pour résultat:

sudo su

Sorry, user antoine is not allowed to execute '/bin/su' as root on Centos_server.

 

18 février 2016 /

Après avoir configurer avec visudo votre fichier /etc/sudoers, vous pouvez vous retrouver face à cette erreur:

sudo vi /etc/init.d/service_test

sudo: sorry, you must have a tty to run sudo

Pas de panique, la solution est simple à mettre en place.
Cette erreur viens du fait qu’une option dans /etc/sudoers exige probablement un terminal via le paramètre « Defaults requiretty« .

Pour régler ce problème, il suffit de remplacer « Defaults requiretty » par « Defaults !requiretty » dans /etc/sudoers.

Ou alors, si on veut donner ce droit a un compte spécifique, on ajoutera plutôt cette ligne après « Defaults requiretty« :

Defaults:nom_du_compte !requiretty

8 novembre 2015 /

Pour ne plus avoir à taper son mot de passe lors d’un appel à sudo, il suffit d’éditer le fichier /etc/sudoers avec visudo:

sudo visudo

Et d’y ajouter cette ligne à la fin (ou en remplaçant celle existante pour le groupe sudo):

%sudo ALL=NOPASSWD: ALL

14 juin 2015 /

Si, par mégarde, vous avez édité un fichier en oubliant de l’avoir ouvert avec sudo, et que donc vous pouvez pas sauvegarder. Ne paniquez pas à l’idée de tout recommencer.
Normalement, il faudrait quitter le ficher et tout recommencer en mettant sudo cette fois.

Pour contourner ce problème sans avoir à quitter votre édition, il suffit de saisir ça :

:w !sudo tee %

Ça peut faire gagner pas mal de temps…