SlideShare uma empresa Scribd logo
Comprendre la Commande SUDO et Le Fichier /etc/sudoers
SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX
1
COMPRENDRE LA COMMANDE SUDO ET LE FICHIER /ETC/SUDOERS
SOMMAIRE :
I. Comprendre la commande sudo
I.1. Le fichier "/etc/sudoers"
II. Les Alias de machines, utilisateurs et commandes
II.1. Alias d’Utilisateur
II.2. Alias de Commande
III. Exclure un Utilisateur
IV. Afficher le Message de Speech SUDO
IV.1. Personnaliser le message de Speech SUDO
V. Exécuter une commande sans mot de passe
Comprendre la Commande SUDO et Le Fichier /etc/sudoers
SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX
2
I. Comprendre la commande sudo
Habituellement la commande "sudo" nous permet de lancer des commandes en tant que
root.
" sudo -l " permet d'afficher les droits d'un utilisateur (Quelles commandes il peut utiliser en
tant que root avec "sudo").
La commande "id" est très utile pour afficher les informations sur un utilisateur (uid, gid,
nom_groupes). L'ID (uid, gid) de l’utilisateur root est "0".
On peut mettre un utilisateur dans le groupe "sudo" (id: 27) pour pouvoir exécuter des
commandes préfixées de "sudo" avec cet utilisateur.
I.1. Le fichier "/etc/sudoers"
Le fichier qui permet de définir quel utilisateur peut faire quoi, est le fichier "/etc/sudoers".
C'est ce fichier qui permet de définir ce qu'un utilisateur peut faire avec la commande
"sudo".
Pour éviter les erreurs et les accès concurrents, il est recommandé d'utiliser "visudo" pour
éditer le fichier "/etc/sudoers".
#--Edition du fichier "/etc/sudoers"
 sudo visudo
#--Signifie : Tous les utilisateurs du groupe sudo auront le droit d'exécuter toutes les commandes.
%sudo ALL = (ALL : ALL) ALL
Explications de la Syntaxe :
-Le premier paramètre peut être un nom d'utilisateur, ou un nom de groupe (dans ce cas, il
sera précédé du caractère "%" (tous)).
-Le second paramètre "ALL" de cette règle, désigne la machine concernée par cette règle
(Elle peut être locale ou distante), donc on pourra déployer le même fichier "sudoers" sur
plein de machines.
-Le troisième et le quatrième paramètre "ALL : ALL" permettent de mentionner l'utilisateur
et le groupe auxquels on va hériter leurs droits (le paramètre "ALL" inclut l’utilisateur "root"
aussi).
-Et le cinquième paramètre lui design la commande autorisée par cette règle.
Comprendre la Commande SUDO et Le Fichier /etc/sudoers
SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX
3
#--Signifie : L'utilisateur "moussa" aura le droit de lancer uniquement la commande "id" avec "sudo".
On spécifiera le chemin complet de la commande qu'on obtiendra avec "which" (exemple : which id).
 moussa ALL=(ALL:ALL) /usr/bin/id
#--On se connecte en tant que moussa, et là on pourra exécuter (sudo id).
 su - moussa → id
 sudo visudo #--Edition du fichier "/etc/sudoers"
#--On autorise l'utilisateur "moussa" de pouvoir exécuter la commande "vi" en plus de la
commande "id".
 moussa ALL=(ALL:ALL) /usr/bin/id, /usr/bin/ vi
#--On limite l'utilisateur "moussa" à utiliser la commande "vi" sans paramètres grâce aux
guillemets vides : il ne pourra pas faire ("vi /etc/passwd" par exemple).
 moussa ALL=(ALL:ALL) /usr/bin/id, /usr/bin/vi ""
NB : Cependant, le programme "vi" peut exécuter "des programmes", par exemple on peut
exécuter(sudo bash, ce qui lancera le Shell en tant que "root" à cause du "sudo"). Et cela pose
un réel problème de sécurité, car dès qu'on a le droit d'exécuter "vi" en tant que root, cela
nous donnes la possibilité d'exécuter d'autres commandes sans quitter "vi" (Exemple :
« :!/bin/bash ») et là, nous devenons root. Et pour éviter ce problème, la solution c'est
d'utiliser l'option "NOEXEC : /usr/bin/vi" qui permettra de lancer "vi", mais n'autorisera pas
cette dernière à lancer une autre commande.
#--L'option "NOEXEC" permet d'exécuter "vi", mais empêche à cette dernière de pouvoir
lancer une autre commande par la suite.
 moussa ALL=(ALL:ALL) /usr/bin/id, NOEXEC: /usr/bin/vi
Cependant, toutes les commandes ne peuvent pas être exécutées avec l'option "NOEXEC"
car, certaines commandes doivent lancer d'autres commandes pour fonctionner
correctement.
Comprendre la Commande SUDO et Le Fichier /etc/sudoers
SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX
4
Nous avons la possibilité de définir une règle qui nous permet de lancer une commande sous
l'identité d'un utilisateur spécifique. On rencontre cela, quand on aura des logiciels qui ont
besoin d'exécuter des scripts. Et on aura besoin d'exécuter des scripts d'administration de
ces logiciels en tant que l'utilisateur associé à ce logiciel.
Au lieu de faire un "su nom_utilisateur" et de taper le mot de passe, on peut le mettre dans
le fichier "sudoers".
#--L'utilisateur "moussa" pourra exécuter "sudo echo bonjour" sans la préfixer de sudo.
 moussa ALL=(ALL:ALL) /bin/echo bonjour
#--Les utilisateurs "moussa" et "pape" peuvent exécuter la commande "echo bonsoir" sans la
préfixer de sudo.
 moussa, pape ALL=(ALL:ALL) /bin/echo bonsoir
#--Les utilisateurs "moussa" et les membres du groupe "sudo", peuvent exécuter la
commande "echo salut" sans la préfixer de sudo.
 moussa, %sudo ALL=(ALL:ALL) /bin/echo salut
II. Les Alias de machines, utilisateurs et commandes
Nous avons la possibilité d'utiliser des (Alias de Machines, d'Utilisateurs et de Commandes)
pour gérer le fichier "/etc/sudoers" quand le nombre d'utilisateurs devient importants. Les
Alias sont des regroupements de noms d'utilisateurs, de machines ou de groupes qu'on va
pouvoir utiliser à la place d'un simple utilisateur.
II.1. Alias d’Utilisateur
Il est impératif que le nom de l'alias commence par une majuscule (En général, on le met
tout en majuscule).
#--Création d'un alias d'utilisateur (ADMIN) qui contient les utilisateurs "pape" et "moussa".
 User_Alias ADMIN= pape, moussa
Comprendre la Commande SUDO et Le Fichier /etc/sudoers
SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX
5
II.2. Alias de Commande
#--On autorise les commandes "adduser" et "passwd" avec l'alias (USERS).
 Cmnd_Alias USERS= /usr/sbin/adduser, /usr/bin/passwd
#--Création d'un deuxième alias (TEST) pour les commandes ("echo", "id", et "vi").
 Cmnd_Alias TEST= /bin/echo, /usr/bin/id, /usr/bin/vi
#--L'utilisateur "moussa" pourra exécuter les commandes de l'alias TEST.
 moussa ALL=(ALL:ALL) NOEXEC: TEST
#--Les utilisateurs de l'alias d'utilisateurs ADMIN peuvent exécuter toutes les commandes de
l’alias de commandes USERS.
 ADMIN ALL=(ALL:ALL) USERS
#--Permet de lister les commandes que l'utilisateur "moussa" pourra exécuter avec "sudo".
 su - moussa --> sudo -l
NB : Quand un utilisateur est mentionné plusieurs fois dans le fichier "/etc/sudoers", la règle
qui va fonctionner c'est la dernière règle qui va correspondre. Donc l'ordre des commandes
dans le fichier "/etc/sudoers" est extrêmement important.
III. Exclure un Utilisateur
#--Tous les membres du groupe "sudo" peuvent exécuter toutes les commandes sauf
l’utilisateur "pape". La négation est exprimée grâce au point d'exclamation "!" placé devant
le nom de l’utilisateur.
 %sudo, !pape ALL=(ALL:ALL) ALL
Comprendre la Commande SUDO et Le Fichier /etc/sudoers
SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX
6
NB : Et c'est un petit peu pareil pour les noms de machines que l'on va mettre sous forme
d'une liste, on peut les faire sous la forme d'un alias et faire aussi des exclusions avec le
point d'exclamation. Et pour les commandes, il est déconseillé d'utiliser une négation car, on
risque par conséquence d'autoriser des commandes qu’on n’aimerait pas autoriser.
#--On lance la commande id sous l'identité de l'utilisateur "moussa" (affichera les
commandes que l’utilisateur "moussa" pourra exécuter).
 sudo -u moussa id
#--L'utilisateur "moussa" pourra exécuter exclusivement en tant que "pape" la commande
"vi". Cela va nous permettre de créer des utilisateurs qui vont pouvoir lancer des scripts sous
l'identité d'un autre utilisateur sans que l'utilisateur en question ne puisse devenir "root".
 moussa ALL=(pape) NOEXEC: /usr/bin/vi
IV. Afficher le Message de Speech SUDO :
#--Permet de toujours afficher le message de Speech à chaque connexion (après le
timestamp qui est de 15mn par défaut).
 Defaults lecture = always
#--Permet de mettre à 0 le temps de rétention du mot de passe (Par défaut 15min) afin que le
système nous demande de taper notre mot de passe à chaque commande.
 Defaults timestamp_timeout = 0
#--Afficher une phrase "insultante" lorsqu'on se trompera sur notre mot de passe (Par
défaut, les insultes sont désactivées).
 Defaults insults
#--On désactive le message de Speech pour l'utilisateur "moussa".
 Defaults:moussa !lecture
#--On désactive le message de Speech pour les utilisateurs "moussa" et "pape".
 Defaults:moussa, pape !lecture
Comprendre la Commande SUDO et Le Fichier /etc/sudoers
SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX
7
IV.1. Personnaliser le message de Speech SUDO
#--On personnalise le message de Speech pour la commande "fdisk". On créera d'abord le
fichier contenant le message(/tmp/fdisk-lecture).
 Defaults!/sbin/fdisk lecture_file = /tmp/fdisk-lecture
V. Exécuter une commande sans mot de passe
#--L'utilisateur "moussa" pourra exécuter la commande "id" sans mot de passe grâce à
l'option NOPASSWD. Cela peut être pratique lorsqu'on aura à exécuter des scripts qui
pourraient avoir des privilèges que temporairement.
 moussa ALL=(ALL) NOPASSWD: /usr/bin/id

Mais conteúdo relacionado

Mais procurados

Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les FondamentauxAlphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm
 
Réseaux
RéseauxRéseaux
Réseaux
zan
 

Mais procurados (20)

1- Les bases de la sécurité informatique.pdf
1- Les bases de la sécurité informatique.pdf1- Les bases de la sécurité informatique.pdf
1- Les bases de la sécurité informatique.pdf
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
 
Alphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm.com Formation Hacking et Sécurité, l'essentielAlphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm.com Formation Hacking et Sécurité, l'essentiel
 
Cours les technologies WAN
Cours les technologies WANCours les technologies WAN
Cours les technologies WAN
 
TP sous linux
TP sous linuxTP sous linux
TP sous linux
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
C5 Réseaux : vlsm-classe-nat
C5 Réseaux : vlsm-classe-natC5 Réseaux : vlsm-classe-nat
C5 Réseaux : vlsm-classe-nat
 
Présentation des Licences Creative Commons (FR)
Présentation des Licences Creative Commons (FR)Présentation des Licences Creative Commons (FR)
Présentation des Licences Creative Commons (FR)
 
Java RMI
Java RMIJava RMI
Java RMI
 
𝐋𝐞 𝐝𝐞́𝐩𝐥𝐨𝐢𝐞𝐦𝐞𝐧𝐭 𝐝𝐞 𝐖𝐢𝐧𝐝𝐨𝐰𝐬 𝐒𝐞𝐫𝐯𝐞𝐫 𝟐𝟎𝟏𝟗
𝐋𝐞 𝐝𝐞́𝐩𝐥𝐨𝐢𝐞𝐦𝐞𝐧𝐭 𝐝𝐞 𝐖𝐢𝐧𝐝𝐨𝐰𝐬 𝐒𝐞𝐫𝐯𝐞𝐫 𝟐𝟎𝟏𝟗 𝐋𝐞 𝐝𝐞́𝐩𝐥𝐨𝐢𝐞𝐦𝐞𝐧𝐭 𝐝𝐞 𝐖𝐢𝐧𝐝𝐨𝐰𝐬 𝐒𝐞𝐫𝐯𝐞𝐫 𝟐𝟎𝟏𝟗
𝐋𝐞 𝐝𝐞́𝐩𝐥𝐨𝐢𝐞𝐦𝐞𝐧𝐭 𝐝𝐞 𝐖𝐢𝐧𝐝𝐨𝐰𝐬 𝐒𝐞𝐫𝐯𝐞𝐫 𝟐𝟎𝟏𝟗
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Chapitre 1 LES SERVICES RESEAUX.pptx
Chapitre 1 LES SERVICES RESEAUX.pptxChapitre 1 LES SERVICES RESEAUX.pptx
Chapitre 1 LES SERVICES RESEAUX.pptx
 
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...
 
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les FondamentauxAlphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
 
Rapport Windows Serveur 2008 "Active Directory Management"
Rapport Windows Serveur 2008 "Active Directory Management"Rapport Windows Serveur 2008 "Active Directory Management"
Rapport Windows Serveur 2008 "Active Directory Management"
 
Introduction_Reseau.ppt
Introduction_Reseau.pptIntroduction_Reseau.ppt
Introduction_Reseau.ppt
 
Mise en place d’un système de détection
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détection
 
Licences creative commons
Licences creative commonsLicences creative commons
Licences creative commons
 
Réseaux
RéseauxRéseaux
Réseaux
 

Semelhante a Comprendre Sudo et Le fichier etc-sudoers-PM_SONKO.pdf

3.0 install de ubuntu server + tasksel + ftp
3.0 install de ubuntu server + tasksel + ftp3.0 install de ubuntu server + tasksel + ftp
3.0 install de ubuntu server + tasksel + ftp
Osi Pallière
 
6.0 modif repertoire destination vsftpd
6.0 modif repertoire destination vsftpd6.0 modif repertoire destination vsftpd
6.0 modif repertoire destination vsftpd
Osi Pallière
 

Semelhante a Comprendre Sudo et Le fichier etc-sudoers-PM_SONKO.pdf (20)

3.0 install de ubuntu server + tasksel + ftp
3.0 install de ubuntu server + tasksel + ftp3.0 install de ubuntu server + tasksel + ftp
3.0 install de ubuntu server + tasksel + ftp
 
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trRapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
 
Deploiement de OpenSSH Server
Deploiement de OpenSSH ServerDeploiement de OpenSSH Server
Deploiement de OpenSSH Server
 
s de base
s de bases de base
s de base
 
Tp n 4 linux
Tp n 4 linuxTp n 4 linux
Tp n 4 linux
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
Création des utlisateurs et groupe sur kali.pdf
Création des utlisateurs et groupe sur kali.pdfCréation des utlisateurs et groupe sur kali.pdf
Création des utlisateurs et groupe sur kali.pdf
 
Mise en place de service NFS ubuntu 22.pdf
Mise en place de service NFS  ubuntu 22.pdfMise en place de service NFS  ubuntu 22.pdf
Mise en place de service NFS ubuntu 22.pdf
 
Rapport du stage
Rapport du stageRapport du stage
Rapport du stage
 
Nagios twil
Nagios twilNagios twil
Nagios twil
 
2020 (1)
2020 (1)2020 (1)
2020 (1)
 
La programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIXLa programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIX
 
Routage protocole
Routage protocoleRoutage protocole
Routage protocole
 
6.0 modif repertoire destination vsftpd
6.0 modif repertoire destination vsftpd6.0 modif repertoire destination vsftpd
6.0 modif repertoire destination vsftpd
 
Installer zpanel sur un serveur linux en 5 minutes
Installer zpanel sur un serveur linux en 5 minutesInstaller zpanel sur un serveur linux en 5 minutes
Installer zpanel sur un serveur linux en 5 minutes
 
Boot
BootBoot
Boot
 
Sécuriser votre système GNU/Linux
Sécuriser votre système GNU/LinuxSécuriser votre système GNU/Linux
Sécuriser votre système GNU/Linux
 
openssh
opensshopenssh
openssh
 
Résumé sur l’utilisation du système unix
Résumé sur l’utilisation du système unixRésumé sur l’utilisation du système unix
Résumé sur l’utilisation du système unix
 
Snort implementation
Snort implementationSnort implementation
Snort implementation
 

Último

Último (6)

Slides du webinaire de l'Infopole sur l'IA
Slides du webinaire de l'Infopole sur l'IASlides du webinaire de l'Infopole sur l'IA
Slides du webinaire de l'Infopole sur l'IA
 
Protéger l'intégrité de son environnement numérique
Protéger l'intégrité de son environnement numériqueProtéger l'intégrité de son environnement numérique
Protéger l'intégrité de son environnement numérique
 
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
 
Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
 
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdfModèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
 
cours Systèmes de Gestion des Identités.pdf
cours Systèmes de Gestion des Identités.pdfcours Systèmes de Gestion des Identités.pdf
cours Systèmes de Gestion des Identités.pdf
 

Comprendre Sudo et Le fichier etc-sudoers-PM_SONKO.pdf

  • 1. Comprendre la Commande SUDO et Le Fichier /etc/sudoers SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX 1 COMPRENDRE LA COMMANDE SUDO ET LE FICHIER /ETC/SUDOERS SOMMAIRE : I. Comprendre la commande sudo I.1. Le fichier "/etc/sudoers" II. Les Alias de machines, utilisateurs et commandes II.1. Alias d’Utilisateur II.2. Alias de Commande III. Exclure un Utilisateur IV. Afficher le Message de Speech SUDO IV.1. Personnaliser le message de Speech SUDO V. Exécuter une commande sans mot de passe
  • 2. Comprendre la Commande SUDO et Le Fichier /etc/sudoers SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX 2 I. Comprendre la commande sudo Habituellement la commande "sudo" nous permet de lancer des commandes en tant que root. " sudo -l " permet d'afficher les droits d'un utilisateur (Quelles commandes il peut utiliser en tant que root avec "sudo"). La commande "id" est très utile pour afficher les informations sur un utilisateur (uid, gid, nom_groupes). L'ID (uid, gid) de l’utilisateur root est "0". On peut mettre un utilisateur dans le groupe "sudo" (id: 27) pour pouvoir exécuter des commandes préfixées de "sudo" avec cet utilisateur. I.1. Le fichier "/etc/sudoers" Le fichier qui permet de définir quel utilisateur peut faire quoi, est le fichier "/etc/sudoers". C'est ce fichier qui permet de définir ce qu'un utilisateur peut faire avec la commande "sudo". Pour éviter les erreurs et les accès concurrents, il est recommandé d'utiliser "visudo" pour éditer le fichier "/etc/sudoers". #--Edition du fichier "/etc/sudoers"  sudo visudo #--Signifie : Tous les utilisateurs du groupe sudo auront le droit d'exécuter toutes les commandes. %sudo ALL = (ALL : ALL) ALL Explications de la Syntaxe : -Le premier paramètre peut être un nom d'utilisateur, ou un nom de groupe (dans ce cas, il sera précédé du caractère "%" (tous)). -Le second paramètre "ALL" de cette règle, désigne la machine concernée par cette règle (Elle peut être locale ou distante), donc on pourra déployer le même fichier "sudoers" sur plein de machines. -Le troisième et le quatrième paramètre "ALL : ALL" permettent de mentionner l'utilisateur et le groupe auxquels on va hériter leurs droits (le paramètre "ALL" inclut l’utilisateur "root" aussi). -Et le cinquième paramètre lui design la commande autorisée par cette règle.
  • 3. Comprendre la Commande SUDO et Le Fichier /etc/sudoers SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX 3 #--Signifie : L'utilisateur "moussa" aura le droit de lancer uniquement la commande "id" avec "sudo". On spécifiera le chemin complet de la commande qu'on obtiendra avec "which" (exemple : which id).  moussa ALL=(ALL:ALL) /usr/bin/id #--On se connecte en tant que moussa, et là on pourra exécuter (sudo id).  su - moussa → id  sudo visudo #--Edition du fichier "/etc/sudoers" #--On autorise l'utilisateur "moussa" de pouvoir exécuter la commande "vi" en plus de la commande "id".  moussa ALL=(ALL:ALL) /usr/bin/id, /usr/bin/ vi #--On limite l'utilisateur "moussa" à utiliser la commande "vi" sans paramètres grâce aux guillemets vides : il ne pourra pas faire ("vi /etc/passwd" par exemple).  moussa ALL=(ALL:ALL) /usr/bin/id, /usr/bin/vi "" NB : Cependant, le programme "vi" peut exécuter "des programmes", par exemple on peut exécuter(sudo bash, ce qui lancera le Shell en tant que "root" à cause du "sudo"). Et cela pose un réel problème de sécurité, car dès qu'on a le droit d'exécuter "vi" en tant que root, cela nous donnes la possibilité d'exécuter d'autres commandes sans quitter "vi" (Exemple : « :!/bin/bash ») et là, nous devenons root. Et pour éviter ce problème, la solution c'est d'utiliser l'option "NOEXEC : /usr/bin/vi" qui permettra de lancer "vi", mais n'autorisera pas cette dernière à lancer une autre commande. #--L'option "NOEXEC" permet d'exécuter "vi", mais empêche à cette dernière de pouvoir lancer une autre commande par la suite.  moussa ALL=(ALL:ALL) /usr/bin/id, NOEXEC: /usr/bin/vi Cependant, toutes les commandes ne peuvent pas être exécutées avec l'option "NOEXEC" car, certaines commandes doivent lancer d'autres commandes pour fonctionner correctement.
  • 4. Comprendre la Commande SUDO et Le Fichier /etc/sudoers SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX 4 Nous avons la possibilité de définir une règle qui nous permet de lancer une commande sous l'identité d'un utilisateur spécifique. On rencontre cela, quand on aura des logiciels qui ont besoin d'exécuter des scripts. Et on aura besoin d'exécuter des scripts d'administration de ces logiciels en tant que l'utilisateur associé à ce logiciel. Au lieu de faire un "su nom_utilisateur" et de taper le mot de passe, on peut le mettre dans le fichier "sudoers". #--L'utilisateur "moussa" pourra exécuter "sudo echo bonjour" sans la préfixer de sudo.  moussa ALL=(ALL:ALL) /bin/echo bonjour #--Les utilisateurs "moussa" et "pape" peuvent exécuter la commande "echo bonsoir" sans la préfixer de sudo.  moussa, pape ALL=(ALL:ALL) /bin/echo bonsoir #--Les utilisateurs "moussa" et les membres du groupe "sudo", peuvent exécuter la commande "echo salut" sans la préfixer de sudo.  moussa, %sudo ALL=(ALL:ALL) /bin/echo salut II. Les Alias de machines, utilisateurs et commandes Nous avons la possibilité d'utiliser des (Alias de Machines, d'Utilisateurs et de Commandes) pour gérer le fichier "/etc/sudoers" quand le nombre d'utilisateurs devient importants. Les Alias sont des regroupements de noms d'utilisateurs, de machines ou de groupes qu'on va pouvoir utiliser à la place d'un simple utilisateur. II.1. Alias d’Utilisateur Il est impératif que le nom de l'alias commence par une majuscule (En général, on le met tout en majuscule). #--Création d'un alias d'utilisateur (ADMIN) qui contient les utilisateurs "pape" et "moussa".  User_Alias ADMIN= pape, moussa
  • 5. Comprendre la Commande SUDO et Le Fichier /etc/sudoers SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX 5 II.2. Alias de Commande #--On autorise les commandes "adduser" et "passwd" avec l'alias (USERS).  Cmnd_Alias USERS= /usr/sbin/adduser, /usr/bin/passwd #--Création d'un deuxième alias (TEST) pour les commandes ("echo", "id", et "vi").  Cmnd_Alias TEST= /bin/echo, /usr/bin/id, /usr/bin/vi #--L'utilisateur "moussa" pourra exécuter les commandes de l'alias TEST.  moussa ALL=(ALL:ALL) NOEXEC: TEST #--Les utilisateurs de l'alias d'utilisateurs ADMIN peuvent exécuter toutes les commandes de l’alias de commandes USERS.  ADMIN ALL=(ALL:ALL) USERS #--Permet de lister les commandes que l'utilisateur "moussa" pourra exécuter avec "sudo".  su - moussa --> sudo -l NB : Quand un utilisateur est mentionné plusieurs fois dans le fichier "/etc/sudoers", la règle qui va fonctionner c'est la dernière règle qui va correspondre. Donc l'ordre des commandes dans le fichier "/etc/sudoers" est extrêmement important. III. Exclure un Utilisateur #--Tous les membres du groupe "sudo" peuvent exécuter toutes les commandes sauf l’utilisateur "pape". La négation est exprimée grâce au point d'exclamation "!" placé devant le nom de l’utilisateur.  %sudo, !pape ALL=(ALL:ALL) ALL
  • 6. Comprendre la Commande SUDO et Le Fichier /etc/sudoers SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX 6 NB : Et c'est un petit peu pareil pour les noms de machines que l'on va mettre sous forme d'une liste, on peut les faire sous la forme d'un alias et faire aussi des exclusions avec le point d'exclamation. Et pour les commandes, il est déconseillé d'utiliser une négation car, on risque par conséquence d'autoriser des commandes qu’on n’aimerait pas autoriser. #--On lance la commande id sous l'identité de l'utilisateur "moussa" (affichera les commandes que l’utilisateur "moussa" pourra exécuter).  sudo -u moussa id #--L'utilisateur "moussa" pourra exécuter exclusivement en tant que "pape" la commande "vi". Cela va nous permettre de créer des utilisateurs qui vont pouvoir lancer des scripts sous l'identité d'un autre utilisateur sans que l'utilisateur en question ne puisse devenir "root".  moussa ALL=(pape) NOEXEC: /usr/bin/vi IV. Afficher le Message de Speech SUDO : #--Permet de toujours afficher le message de Speech à chaque connexion (après le timestamp qui est de 15mn par défaut).  Defaults lecture = always #--Permet de mettre à 0 le temps de rétention du mot de passe (Par défaut 15min) afin que le système nous demande de taper notre mot de passe à chaque commande.  Defaults timestamp_timeout = 0 #--Afficher une phrase "insultante" lorsqu'on se trompera sur notre mot de passe (Par défaut, les insultes sont désactivées).  Defaults insults #--On désactive le message de Speech pour l'utilisateur "moussa".  Defaults:moussa !lecture #--On désactive le message de Speech pour les utilisateurs "moussa" et "pape".  Defaults:moussa, pape !lecture
  • 7. Comprendre la Commande SUDO et Le Fichier /etc/sudoers SUDO ET LE FICHIER /ETC/SUDOERS M. PAPE M. SONKO, INGENIEUR SYSTEMES ET RESEAUX 7 IV.1. Personnaliser le message de Speech SUDO #--On personnalise le message de Speech pour la commande "fdisk". On créera d'abord le fichier contenant le message(/tmp/fdisk-lecture).  Defaults!/sbin/fdisk lecture_file = /tmp/fdisk-lecture V. Exécuter une commande sans mot de passe #--L'utilisateur "moussa" pourra exécuter la commande "id" sans mot de passe grâce à l'option NOPASSWD. Cela peut être pratique lorsqu'on aura à exécuter des scripts qui pourraient avoir des privilèges que temporairement.  moussa ALL=(ALL) NOPASSWD: /usr/bin/id