SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Premiers pas avec snort
Premiers pas avec snortPremiers pas avec snort
Premiers pas avec snortFathi Ben Nasr
 
Kernel_Crash_Dump_Analysis
Kernel_Crash_Dump_AnalysisKernel_Crash_Dump_Analysis
Kernel_Crash_Dump_AnalysisBuland Singh
 
2009 2010-l3-reseau-td2-adressage-routage ip-corrige
2009 2010-l3-reseau-td2-adressage-routage ip-corrige2009 2010-l3-reseau-td2-adressage-routage ip-corrige
2009 2010-l3-reseau-td2-adressage-routage ip-corrigeAbabacar Faye
 
Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
Rapport d’installation d’un serveur de messagerie avec le Webmail Roundcube
Rapport d’installation d’un serveur de  messagerie avec le Webmail RoundcubeRapport d’installation d’un serveur de  messagerie avec le Webmail Roundcube
Rapport d’installation d’un serveur de messagerie avec le Webmail RoundcubeBalla Moussa Doumbouya
 
Admin reseaux sous linux cours 3
Admin reseaux sous linux   cours 3Admin reseaux sous linux   cours 3
Admin reseaux sous linux cours 3Stephen Salama
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)Alphorm
 
package mangement
package mangementpackage mangement
package mangementARYA TM
 
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk) Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk) Dimitri LEMBOKOLO
 
Systeme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSSysteme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSAfaf MATOUG
 
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Faycel Chaoua
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfInes Ben Hassine
 
LES RESEAUX INFORMATIQUES.pdf
LES RESEAUX INFORMATIQUES.pdfLES RESEAUX INFORMATIQUES.pdf
LES RESEAUX INFORMATIQUES.pdfssuser18776b
 

Tendances (20)

Premiers pas avec snort
Premiers pas avec snortPremiers pas avec snort
Premiers pas avec snort
 
Kernel_Crash_Dump_Analysis
Kernel_Crash_Dump_AnalysisKernel_Crash_Dump_Analysis
Kernel_Crash_Dump_Analysis
 
2009 2010-l3-reseau-td2-adressage-routage ip-corrige
2009 2010-l3-reseau-td2-adressage-routage ip-corrige2009 2010-l3-reseau-td2-adressage-routage ip-corrige
2009 2010-l3-reseau-td2-adressage-routage ip-corrige
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
Rapport d’installation d’un serveur de messagerie avec le Webmail Roundcube
Rapport d’installation d’un serveur de  messagerie avec le Webmail RoundcubeRapport d’installation d’un serveur de  messagerie avec le Webmail Roundcube
Rapport d’installation d’un serveur de messagerie avec le Webmail Roundcube
 
Admin reseaux sous linux cours 3
Admin reseaux sous linux   cours 3Admin reseaux sous linux   cours 3
Admin reseaux sous linux cours 3
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)
 
Gsm 3g
Gsm 3gGsm 3g
Gsm 3g
 
package mangement
package mangementpackage mangement
package mangement
 
Tuto pfsense
Tuto pfsenseTuto pfsense
Tuto pfsense
 
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk) Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
Tuto ToIP (Trunk SIP, IAX, Trunk CME - Asterisk)
 
Systeme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSSysteme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOS
 
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
 
Snort implementation
Snort implementationSnort implementation
Snort implementation
 
Ex200
Ex200Ex200
Ex200
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
 
LES RESEAUX INFORMATIQUES.pdf
LES RESEAUX INFORMATIQUES.pdfLES RESEAUX INFORMATIQUES.pdf
LES RESEAUX INFORMATIQUES.pdf
 

Similaire à 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 + ftpOsi Pallière
 
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 trCheikh Tidiane DIABANG
 
Deploiement de OpenSSH Server
Deploiement de OpenSSH ServerDeploiement de OpenSSH Server
Deploiement de OpenSSH Serverbamaemmanuel
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)Souhaib El
 
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.pdfImnaTech
 
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.pdfImnaTech
 
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 UNIXBen Hassen Hamdi
 
6.0 modif repertoire destination vsftpd
6.0 modif repertoire destination vsftpd6.0 modif repertoire destination vsftpd
6.0 modif repertoire destination vsftpdOsi Pallière
 
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 minutesSamuel Guebo
 
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/LinuxAsher256
 
openssh
opensshopenssh
opensshiferis
 
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 unixMohamed Ferchichi
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
 

Similaire à 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
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 

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