GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser Sudo et le fichier Sudoers

La commande sudo permet aux utilisateurs non root d'exécuter d'autres commandes Linux qui nécessiteraient normalement des privilèges de super utilisateur, tandis que le fichier sudoers indique au système comment gérer la commande sudo. Dans ce didacticiel, nous allons vous montrer toutes les bases de la commande sudo et comment modifier le fichier sudoers.

Comprendre Sudo

Pour montrer comment fonctionne sudo, accédez d'abord à votre VPS via SSH. Si vous rencontrez des difficultés, consultez le didacticiel PuTTY.

Par défaut, l'utilisateur root n'a pas besoin d'utiliser le préfixe sudo. Ils ont déjà tous les privilèges possibles. En attendant, si un utilisateur non root souhaite ajouter un autre utilisateur, il devra ajouter le préfixe sudo à la commande useradd, comme ceci :

sudo useradd edward

Si l'utilisateur n'utilise pas le préfixe sudo, il recevra une autorisation refusée sortie.

Le fichier Sudoers

La commande sudo est configurée via un fichier situé dans /etc/ appelés sudoers .

Grâce à la commande sudo, vous fournissez des privilèges de niveau administratif aux utilisateurs réguliers. Normalement, le premier utilisateur que vous créez lors de l'installation d'Ubuntu a les droits sudo. Dans un environnement VPS, il s'agit de l'utilisateur root par défaut. Vous pouvez configurer d'autres utilisateurs pour qu'ils puissent également exécuter la commande sudo. Cela peut être fait en éditant sudoers.

Syntaxe du fichier Sudoers

Vous pouvez ouvrir le fichier avec votre éditeur de texte préféré. Nous utiliserons vi :

vi /etc/sudoers

Le fichier de notre VPS ressemble à ceci :

Examinons quelques-uns des formats et des règles à suivre lors de l'édition de sudoers :

  • Toutes les lignes commençant par # sont des commentaires
  • racine ALL=(ALL:ALL) ALL – cette ligne signifie que l'utilisateur root a des privilèges illimités et peut exécuter n'importe quelle commande sur le système
  • %admin ALL=(ALL) ALL – le signe % spécifie un groupe. Tous les membres du groupe admin ont les mêmes privilèges que l'utilisateur root
  • %sudo ALL=(ALL:ALL ) TOUS – tous les utilisateurs du groupe sudo ont les privilèges d'exécuter n'importe quelle commande

Une autre ligne d'intérêt est #includedir /etc/sudoers.d, cela signifie que nous pouvons ajouter des configurations au fichier sudoers.d et le lier ici.

Modification du fichier Sudoers

Pour modifier /etc/sudoers fichier, utilisez la commande suivante :

sudo visudo -f /etc/sudoers

Il est recommandé d'utiliser visudo pour éditer le fichier sudoers. Visudo s'assure que sudoers est modifié par un utilisateur à la fois et fournit les vérifications de syntaxe nécessaires.

Pour voir quels utilisateurs sont dans le groupe sudo, nous pouvons utiliser une commande grep :

grep ‘sudo’ /etc/group

Cela affichera une liste de noms d'utilisateurs.

Pour ajouter un utilisateur appelé bill au groupe sudo, nous utilisons le adduser commande dans la ligne de commande, comme ceci :

adduser bill sudo

Si nous utilisons la commande grep pour vérifier qui fait partie du groupe, nous verrons la facture du nom d'utilisateur.

Si vous souhaitez donner à quelqu'un des privilèges root, ajoutez-le simplement à sudo.

Pour supprimer un utilisateur de sudo :

deluser bill sudo

La commande deluser supprimera bill du groupe sudo.

Désormais, l'utilisateur ne peut plus effectuer d'actions nécessitant des privilèges sudo.

Utiliser le fichier Sudoers pour accorder des privilèges spécifiques

Que se passe-t-il si nous voulons que Bill ne puisse exécuter que des types spécifiques de commandes avec des privilèges sudo, comme la mise en réseau ?

Pour ce faire, nous créons un fichier de configuration dans /etc/sudoers.d/ appelé mise en réseau.

Utilisez la commande suivante pour créer le fichier :

sudo visudo -f /etc/sudoers.d/networking

Ajoutez le texte suivant dans le fichier :

Cmnd_Alias     CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias     SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd
Cmnd_Alias     NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

Ce que nous avons fait dans le fichier ci-dessus est de créer un groupe netadmin. Les utilisateurs du groupe netadmin peuvent exécuter les commandes spécifiées dans NETALL. NETALL inclut à son tour toutes les commandes sous les alias CAPTURE et SERVERS. La commande tcpdump est sous l'alias CAPTURE c'est-à-dire /usr/sbin/tcpdump.

Ensuite, nous ajoutons la facture de l'utilisateur au groupe netadmin :

sudo adduser bill netadmin

Désormais, la facture de l'utilisateur pourra exécuter la commande tcpdump avec d'autres commandes liées au réseau.

Conclusion

Si vous travaillez avec plusieurs utilisateurs, comprendre la commande sudo et le fichier sudoers est un must absolu. Dans ce tutoriel, vous avez appris toutes les bases pour prendre le contrôle des privilèges de votre système !


Linux
  1. Comment utiliser la commande Tar sous Linux

  2. Comment créer un alias et utiliser la commande Alias ​​sous Linux

  3. Comment utiliser la commande basename ?

  4. Comment installer et utiliser la commande Ping sous Linux

  5. Comment utiliser les lignes d'un fichier comme arguments d'une commande ?

Comment utiliser et tirer le meilleur parti de la commande fuser sous Linux

Comment utiliser la commande Linux ftp pour charger et télécharger des fichiers sur le shell

Comment utiliser la commande Gzip sous Linux ?

Comment installer et utiliser la commande d'écran Ubuntu 20.04

Comment installer et utiliser la commande Ack sous Linux

Linux perf :comment utiliser la commande et le profileur