Sudo : Exécuter des commandes en root sans l'être

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Sudo est souvent utiliser et très pratique car il permet de lancer occasionnellement des commandes en root sans y être connecté. Il a plusieurs options de sécurité pour l'utilisation.

2 Installation

C'est super simple comme d'habitude :

Command apt-get
apt-get install sudo

3 Configuration

Editez le fichier /etc/sudoers puis adaptez selon vos besoin...

3.1 Donner tous les droits à une personne

Attention, cette manipe est équivalente à donner tous les droits root à une personne. Il pourra changer le mot de passe root, tout voir, tout supprimer. Si vous souhaitez donc appliquer ce type de droits ajoutez ceci :

Configuration File /etc/sudoers
username    ALL=(ALL) ALL

Remplacer username par le nom de l'utilisateur en question.

3.2 N'autoriser qu'une seule application à être lancer en root

Si par exemple un utilisateur à besoin d'être root pour effectuer une tâche récurente, que c'est (pour la plus part du temps) un script qui va tourner en fond de tâche, il ne faut alors pas qu'il y ai une demande de mot de passe, sinon il ne pourra s'exécuter. C'est pourquoi il faut faire comme ceci :

Configuration File /etc/sudoers
username ALL=NOPASSWD: /mon/script.sh

Mettez le nom d'utilisateur au début, puis le script ou la commande que cet utilisateur aura le droit de lancer. Vous pouvez même y mettre des arguments pour focer l'utilisateur à utiliser cette commande qu'avec certains arguments.

3.3 Multi autorisations

Pour combiner des autorisation, il suffit de mettre une virgule :

Configuration File /etc/sudoers
username ALL=(ALL) ALL, NOPASSWD: /mon/script.sh

4 Utilisation

Une fois qu'une personne possède les droits, il suffit de faire sudo, suivit de la commande :

Command sudo
[email protected] $ sudo /mon/script.sh

5 Obtenir la liste des commandes dispo

Je demande ici avec l'utilisateur pmavro ses propriétés :

Command sudo
$ sudo -l
[sudo] password for pmavro: 
User pmavro may run the following commands on this host:
    (ALL) ALL