# Désactiver le compte root sous Debian
Dans la plupart des distributions modernes, le compte `root` est désactivé par défaut. Cet article explique comment vérifier son état, le désactiver proprement et éventuellement le réactiver.
## Prérequis
Avant de désactiver `root`, vous devez disposer d’un compte utilisateur standard ayant des privilèges d’administration via **sudo**.
### Étapes préalables
- Ouvrir une session root et installer le paquet **sudo** :
```bash
apt install sudo
```
- Créer un utilisateur si nécessaire (exemple : `iamnotroot`) :
```bash
adduser iamnotroot
```
- Ajouter cet utilisateur au groupe **sudo** :
```bash
adduser iamnotroot sudo
```
- Fermer la session root :
```bash
exit
```
## Désactiver le compte root
- Connectez-vous avec l’utilisateur non-root membre du groupe `sudo` (exemple : `iamnotroot`).
- Vérifiez ses privilèges en exécutant une commande d’administration (si la commande est acceptée, vous pouvez passer à l’étape suivante) :
```bash
sudo reboot
```
- Désactivez le compte root en verrouillant son mot de passe :
```bash
sudo passwd -l root
```
> [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Cette commande place un `!` devant le hash du mot de passe de `root` dans `/etc/shadow`, empêchant ainsi toute connexion avec ce compte.</span>
### Commandes alternatives
- Méthode équivalente avec `usermod` :
```bash
sudo usermod -L root
```
- **Ancienne méthode (dépréciée, à éviter)** :
```bash
sudo usermod -p '!' root
```
### Vérification
Fermez la session courante et tentez d’ouvrir une session avec `root`. Vous devriez recevoir :
```
Login failed
```
## Pendant l’installation de l’OS
Lors de l’installation de Debian, il suffit de laisser vide le champ *mot de passe du compte root*. Cela entraîne automatiquement :
- la désactivation du compte `root`,
- l’installation de `sudo`,
- l’ajout du premier utilisateur créé dans le groupe `sudo`.
## Réactiver le compte root
- Déverrouiller le compte :
```bash
sudo usermod -U root
```
- Définir un nouveau mot de passe :
```bash
sudo passwd root
```
- Tester la connexion avec `root` et conserver le mot de passe en lieu sûr.
## Référence
- [IT CONNECT – Comment désactiver le compte root sous Debian 12 ?](https://www.it-connect.fr/linux-comment-desactiver-le-compte-root-sur-debian-12/)
%%
## Désactiver complètement root
> [!warning] Disclamer ! <span style="font-weight: normal; color: var(--text-normal)">Je n'ai pas encore testé la méthode ci-dessous. Vous pMais verrouiller est différent de désactiver totalement root. </span>
- **Verrouiller (`passwd -l` ou `usermod -L`)** : empêche l’authentification par mot de passe, mais le compte `root` existe toujours.
- **Désactiver totalement** : vous pouvez changer le shell par `/usr/sbin/nologin` :
```bash
sudo usermod -s /usr/sbin/nologin root
```
Cela bloque l’accès complet au compte root (même sans mot de passe).
%%