Présentation
Sudo signifie SuperUser DO et est utilisé pour accéder aux fichiers et opérations restreints. Par défaut, Linux restreint l'accès à certaines parties du système, empêchant ainsi la compromission des fichiers sensibles.
Le sudo
La commande élève temporairement les privilèges permettant aux utilisateurs d'effectuer des tâches sensibles sans se connecter en tant qu'utilisateur root. Dans ce didacticiel, découvrez comment utiliser la commande sudo sous Linux avec des exemples.
Prérequis
- Un système exécutant Linux
- Accès à une ligne de commande/fenêtre de terminal (Activités > Recherche > Terminal)
- Un compte utilisateur avec
sudo
ouroot
privilèges
Comment utiliser la commande sudo
sudo
a été développé comme un moyen d'accorder temporairement à un utilisateur des droits d'administration. Pour le faire fonctionner, utilisez sudo
avant une commande restreinte. Le système vous demandera votre mot de passe. Une fois fourni, le système exécute la commande.
Syntaxe
Pour commencer à utiliser sudo
, utilisez la syntaxe suivante :
sudo [command]
Lorsque le sudo
est utilisée, un horodatage est entré dans les journaux système. L'utilisateur peut exécuter des commandes avec des privilèges élevés pendant une courte période (15 minutes par défaut). Si un utilisateur non-sudo essaie d'utiliser le sudo
commande, il est enregistré en tant qu'événement de sécurité.
Options
sudo
peut être utilisé avec des options supplémentaires :
-h
- aider; affiche la syntaxe et les options de commande-V
- version; affiche la version actuelle de l'application sudo-v
– valider; actualiser la limite de temps sur sudo sans exécuter de commande-l
- liste; répertorie les privilèges de l'utilisateur ou vérifie une commande spécifique-k
- tuer; mettre fin aux privilèges sudo actuels
Des options supplémentaires peuvent être trouvées sous le -h
option.
Accorder des privilèges sudo
Pour la plupart des distributions Linux modernes, un utilisateur doit être dans le sudo , les sudistes, ou roue groupe pour utiliser le sudo
commande. Par défaut, un système mono-utilisateur accorde des privilèges sudo à son utilisateur. Un système ou un serveur avec plusieurs comptes d'utilisateurs peut exclure certains utilisateurs des privilèges sudo.
Nous vous recommandons de n'accorder que les privilèges absolument nécessaires à l'utilisateur pour effectuer des tâches quotidiennes.
Les sections suivantes expliquent comment ajouter un utilisateur au groupe sudoers.
RedHat et CentOS
Dans Redhat/CentOS, la roue le groupe contrôle sudo utilisateurs. Ajoutez un utilisateur au groupe de roues avec la commande suivante :
usermod -aG wheel [username]
Remplacez [username]
avec un vrai nom d'utilisateur. Vous devrez peut-être vous connecter en tant qu'administrateur ou utiliser le su
commande.
Debian et Ubuntu
Dans Debian/Ubuntu, le sudo le groupe contrôle les utilisateurs sudo. Ajoutez un utilisateur au groupe sudo avec la commande suivante :
usermod -aG sudo [username]
Remplacez [username]
avec un vrai nom d'utilisateur. Vous devrez peut-être vous connecter en tant qu'administrateur ou utiliser le su
commande.
Utiliser visudo et le groupe sudoers
Dans certaines versions modernes de Linux, les utilisateurs sont ajoutés aux sudoers fichier pour accorder des privilèges. Ceci est fait en utilisant le visudo
commande.
1. Utilisez le visudo
commande pour modifier le fichier de configuration :
sudo visudo
2. Cela ouvrira /etc/sudoers pour l'édition. Pour ajouter un utilisateur et accorder tous les privilèges sudo , ajoutez la ligne suivante :
[username] ALL=(ALL:ALL) ALL
3. Enregistrez et quittez le fichier.
Voici une ventilation des privilèges sudo accordés :
[username] [any-hostname]=([run-as-username]:[run-as-groupname]) [commands-allowed]
Exemples de sudo sous Linux
Utilisation de base de Sudo
1. Ouvrez une fenêtre de terminal et essayez la commande suivante :
apt-get update
2. Vous devriez voir un message d'erreur. Vous ne disposez pas des autorisations nécessaires pour exécuter la commande.
3. Essayez la même commande avec sudo
:
sudo apt-get update
4. Tapez votre mot de passe lorsque vous y êtes invité. Le système exécute la commande et met à jour les référentiels.
Exécuter la commande en tant qu'utilisateur différent
1. Pour exécuter une commande en tant qu'utilisateur différent, dans le terminal, saisissez la commande suivante :
whoami
2. Le système devrait afficher votre nom d'utilisateur. Ensuite, exécutez la commande suivante :
sudo -u [different_username] whoami
3. Entrez le mot de passe pour [different_username]
, et le whoami
La commande s'exécutera et affichera l'utilisateur différent.
Passer à l'utilisateur racine
Cette commande bascule votre invite de commande vers le shell BASH en tant qu'utilisateur root :
sudo bash
Votre ligne de commande devrait changer en :
[email protected]:/home/[username]
Le hostname
valeur sera le nom de réseau de ce système. Le username
sera le nom d'utilisateur actuellement connecté.
Exécuter les commandes précédentes avec sudo
La ligne de commande Linux conserve un enregistrement des commandes précédemment exécutées. Ces enregistrements sont accessibles en appuyant sur la flèche vers le haut. Pour répéter la dernière commande avec des privilèges élevés, utilisez :
sudo !!
Cela fonctionne également avec les anciennes commandes. Spécifiez le numéro historique comme suit :
sudo !6
Cet exemple répète la 6ème entrée de l'historique avec le sudo
commande.
Exécuter plusieurs commandes sur une seule ligne
Enchaînez plusieurs commandes ensemble, séparées par un point-virgule :
sudo ls; whoami; hostname
Ajouter une chaîne de texte à un fichier existant
L'ajout d'une chaîne de texte à un fichier est souvent utilisé pour ajouter le nom d'un référentiel de logiciels au fichier sources, sans ouvrir le fichier pour le modifier. Utilisez la syntaxe suivante avec les commandes echo, sudo et tee :
echo ‘string-of-text’ | sudo tee -a [path_to_file]
Par exemple :
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list