2. Vérifier votre statut utilisateur
Si vous êtes connecté en tant que root, vous devrez créer un nouveau compte utilisateur non privilégié.
2.1. Vérifier si vous êtes root
Section intitulée « 2.1. Vérifier si vous êtes root »Exécutez la commande suivante pour vérifier votre nom d’utilisateur actuel :
whoami- Si le résultat est
root, vous êtes connecté en tant qu’utilisateur root. - Vous pouvez également vérifier l’UID (identifiant utilisateur) de votre compte en exécutant :
id- Si l’UID est
0, vous êtes connecté en tant qu’utilisateur root.
2.2. Vérifier les privilèges root pour un utilisateur non-root
Section intitulée « 2.2. Vérifier les privilèges root pour un utilisateur non-root »Si vous n’êtes pas connecté en tant que root, vérifiez si votre utilisateur fait déjà partie du groupe sudo en exécutant :
groups- Cela affichera la liste des groupes auxquels votre utilisateur appartient. Si
sudofigure dans la liste, votre utilisateur dispose de droits administratifs (privilégiés).
Vous pouvez également vérifier en exécutant une commande qui nécessite les privilèges sudo. Par exemple :
sudo whoami- Si un mot de passe vous est demandé et que vous voyez ensuite le résultat
root, cela signifie que votre utilisateur a accès àsudo.
2.2.1 Que faire selon les résultats
Section intitulée « 2.2.1 Que faire selon les résultats »-
Cas 1 : Votre utilisateur est root (résultat de
whoami=rootouidaffiche l’UID0)- Créez un nouveau compte utilisateur non privilégié.
- Déconnectez-vous du compte root et utilisez le compte nouvellement créé pour la suite des opérations.
-
Cas 2 : Votre utilisateur n’a pas d’accès privilégié (pas dans le groupe
sudo)- Vous pouvez demander à l’administrateur système de vous accorder les privilèges
sudoou vous connecter en tant que root pour ajouter votre utilisateur au groupesudo(si vous disposez des identifiants root).
- Vous pouvez demander à l’administrateur système de vous accorder les privilèges
-
Cas 3 : Votre utilisateur fait déjà partie du groupe
sudo- Vous pouvez poursuivre votre travail car vous disposez déjà d’un accès administratif sans être directement l’utilisateur root.
Ce processus vous assure de commencer à travailler sur le serveur en toute sécurité, en respectant les bonnes pratiques de gestion des privilèges utilisateur.
2.3. Créer un nouveau compte utilisateur non privilégié
Section intitulée « 2.3. Créer un nouveau compte utilisateur non privilégié »Dans les systèmes Linux, la gestion des privilèges root est une partie essentielle de l’administration des utilisateurs. Il existe deux méthodes courantes pour accorder les privilèges root : la commande visudo et la commande usermod.
Quand utiliser
visudoouusermod
- Utilisez
visudopour des configurations détaillées et sécurisées.- Utilisez
usermodpour une gestion simple et rapide des privilèges basée sur les groupes.
2.3.1. Utilisation de la commande usermod
Section intitulée « 2.3.1. Utilisation de la commande usermod »La commande usermod est un moyen simple d’ajouter un utilisateur au groupe sudo (ou à d’autres groupes administratifs). Elle est idéale lorsque la configuration du système permet la gestion des privilèges par groupes.
Pour ajouter l’utilisateur au groupe sudo, utilisez la commande suivante :
sudo usermod -aG sudo username- Remplacez
usernamepar le nom d’utilisateur réel de la personne que vous souhaitez ajouter au groupe sudo. - L’option
-agarantit que l’utilisateur est ajouté au groupe sans être retiré des autres groupes. - L’option
-Gspécifie le groupe auquel l’utilisateur est ajouté (sudodans ce cas).
sudo adduser usernameVous devez fournir un mot de passe pour le nouveau compte. Ensuite, il vous sera demandé de saisir les détails du nouvel utilisateur, ce qui est facultatif.
Créez un nouveau compte utilisateur (remplacez username par le nom réel du compte utilisateur) :
sudo adduser usernameAjoutez le nouveau compte utilisateur au groupe sudo :
sudo usermod -aG sudo usernameVous pouvez vérifier l’appartenance au groupe avec la commande suivante :
groups usernameExemple :
Section intitulée « Exemple : »groups ubuntuubuntu sudo usersLe nouveau compte utilisateur est maintenant un utilisateur sudo et peut exécuter toutes les commandes.
Cela est configuré par le paramètre par défaut du groupe sudo :
# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL2.3.2. Utilisation de la commande visudo
Section intitulée « 2.3.2. Utilisation de la commande visudo »Voici comment ajouter les privilèges root pour un utilisateur avec visudo :
- Ouvrir le fichier
sudoers:
sudo visudoCette commande garantit que le fichier sudoers est vérifié pour les erreurs de syntaxe avant l’enregistrement, ce qui évite les erreurs de configuration potentielles.
2. Ajouter l’utilisateur avec tous les privilèges : Localisez la section du fichier où les privilèges utilisateur sont définis. Pour accorder à un utilisateur (username) les privilèges root complets, ajoutez la ligne suivante :
username ALL=(ALL:ALL) ALL- Remplacez
usernamepar le nom d’utilisateur réel. - Cette ligne permet à l’utilisateur d’exécuter n’importe quelle commande en tant que n’importe quel utilisateur ou groupe, avec les privilèges root.
- Enregistrer et quitter
- Si vous utilisez
vimcomme éditeur par défaut, appuyez sur Esc, tapez:wqet appuyez sur Entrée pour enregistrer et fermer. - Pour
nano, appuyez sur Ctrl+O pour enregistrer, puis Ctrl+X pour quitter.
- Si vous utilisez
2.4 Comprendre la configuration sudo sans mot de passe
Section intitulée « 2.4 Comprendre la configuration sudo sans mot de passe »2.4.1. L’option NOPASSWD dans sudoers
Section intitulée « 2.4.1. L’option NOPASSWD dans sudoers »Si votre utilisateur ou groupe (par exemple, sudo) est configuré avec l’option NOPASSWD, les commandes sudo peuvent être exécutées sans saisir de mot de passe. Ces configurations sont définies soit dans le fichier principal sudoers, soit dans les fichiers du répertoire /etc/sudoers.d.
Cette configuration peut être intentionnelle à des fins d’automatisation ou de commodité, mais elle doit être utilisée avec prudence pour éviter de compromettre la sécurité. Examinez et modifiez toujours les configurations sudo de manière responsable.
2.4.2. Réactiver les demandes de mot de passe
Section intitulée « 2.4.2. Réactiver les demandes de mot de passe »Pour réactiver les demandes de mot de passe pour les commandes sudo, suivez ces étapes :
-
Modifier le fichier
sudoersde manière sécurisée avecvisudo:sudo visudo -
Localiser et supprimer/modifier la règle
NOPASSWD:- Trouvez les lignes contenant
NOPASSWD. Par exemple :username ALL=(ALL) NOPASSWD:ALL
- Trouvez les lignes contenant
- Remplacez
NOPASSWD:ALLparALL. Les lignes modifiées ressembleront à :username ALL=(ALL) ALL
- Enregistrer et quitter
2.5. Vérifier et configurer le PermitRootLogin
Section intitulée « 2.5. Vérifier et configurer le PermitRootLogin »Étapes pour vérifier et définir PermitRootLogin à no
2.5.1. Localiser le fichier de configuration SSH
Section intitulée « 2.5.1. Localiser le fichier de configuration SSH »Le fichier de configuration principal de SSH se trouve généralement à l’emplacement /etc/ssh/sshd_config.
Pour vérifier le comportement actuel de PermitRootLogin, exécutez :
bash sudo grep PermitRootLogin /etc/ssh/sshd_config
- Si le résultat est commenté (
# PermitRootLogin ...), alors le comportement par défaut du système est appliqué (souventyes).
2.5.2. Modifier la configuration SSH
Section intitulée « 2.5.2. Modifier la configuration SSH »Ouvrez le fichier dans un éditeur :
sudo nano /etc/ssh/sshd_configRecherchez la directive PermitRootLogin. Si elle est présente mais commentée (précédée de #), décommentez-la en supprimant le #.
Modifiez la ligne (ou ajoutez-la si elle n’est pas présente) pour obtenir :
PermitRootLogin noCela désactive la connexion root via SSH.
- Vérifier le dossier inclus pour les configurations supplémentaires
-
De nombreuses distributions prennent en charge l’inclusion de fichiers de configuration supplémentaires depuis un dossier. Par exemple :
Include /etc/ssh/sshd_config.d/*.conf -
Pour vérifier si des fichiers de configuration supplémentaires sont inclus, recherchez une directive
Includedanssshd_config:grep -i include /etc/ssh/sshd_config -
SSH lit les configurations dans l’ordre suivant :
- Le fichier principal (
/etc/ssh/sshd_config) est lu en premier. - Les configurations des fichiers du dossier inclus (comme
/etc/ssh/sshd_config.d/*.conf) sont lues ensuite. - Paramètres en conflit : la dernière ligne lue a la priorité.
- Le fichier principal (
-
Cela signifie que si le fichier de configuration principal et les fichiers inclus spécifient tous deux
PermitRootLogin, la valeur du dernier fichier (ou ligne) traité sera appliquée. Exemple : si/etc/ssh/sshd_configcontient :PermitRootLogin yeset
/etc/ssh/sshd_config.d/custom.confcontient :PermitRootLogin noAlors le système appliquera
PermitRootLogin no, car cette valeur est lue en dernier. -
Voir Annexe A pour plus de détails sur la priorité des fichiers de configuration SSH.
-
Si une telle ligne existe, tous les fichiers .conf dans /etc/ssh/sshd_config.d/ (ou le dossier spécifié) seront également appliqués.
2.5.3. Appliquer la nouvelle configuration
Section intitulée « 2.5.3. Appliquer la nouvelle configuration »- Vérifier la configuration. Après avoir effectué les modifications, vérifiez la syntaxe du fichier de configuration :
S’il n’y a pas d’erreurs, poursuivez.sudo sshd -t
- Redémarrer le service SSH. Appliquez les modifications en redémarrant le service SSH :
sudo systemctl restart ssh
- Tester la configuration. Essayez de vous connecter en tant que
rootvia SSH pour confirmer que l’accès est refusé :ssh root@your_server_ip
Annexe A. Comprendre la priorité des fichiers de configuration SSH
Section intitulée « Annexe A. Comprendre la priorité des fichiers de configuration SSH »-
Ordre de lecture :
- SSHD lit
/etc/ssh/sshd_configEN PREMIER - Le démon SSH traite les directives
Includelorsqu’elles sont rencontrées dans le fichiersshd_config. - Si la directive
Include /etc/ssh/sshd_config.d/*.confapparaît au milieu desshd_config, les fichiers dans/etc/ssh/sshd_config.d/sont traités immédiatement à ce moment-là en ordre lexicographique.
- SSHD lit
-
La première valeur l’emporte :
- La première occurrence d’une directive de configuration (par exemple,
PermitRootLogin) est appliquée. - Toute définition ultérieure est ignorée, quel que soit l’ordre des fichiers.
- La première occurrence d’une directive de configuration (par exemple,
Annexe A.1 Exemple
Section intitulée « Annexe A.1 Exemple »Supposons ces fichiers inclus dans /etc/ssh/sshd_config :
Include /etc/ssh/sshd_config.d/*.confStructure du répertoire :
/etc/ssh/sshd_config.d/├── 50-cloud-init.conf└── 60-cloudimg-settings.confContenu de chaque fichier :
-
50-cloud-init.conf :
/etc/ssh/sshd_config.d/50-cloud-init.conf PermitRootLogin yes -
60-cloudimg-settings.conf :
/etc/ssh/sshd_config.d/60-cloudimg-settings.conf PermitRootLogin no
Résultat :
Le serveur SSH applique PermitRootLogin yes car cette valeur est définie EN PREMIER dans 50-cloud-init.conf, même si 60-cloudimg-settings.conf la définit à no.