Sudo et permissions Linux : guide complet chmod, chown, su vs sudo

Installez sudo sur Debian, comprenez su vs sudo, résolvez les « permission denied » et sécurisez vos fichiers.

Sudo et permissions Linux

Introduction

Vous venez d’installer Debian ou une autre distribution Linux et vous tombez sur le redoutable message sudo: command not found ? Ou peut-être que permission denied bloque vos opérations sur des fichiers critiques ? Pas de panique : comprendre les permissions Linux et la commande sudo est une compétence fondamentale pour tout administrateur système.

Ce guide couvre tout ce que vous devez savoir sur sudo, chmod, chown, chgrp et umask, avec des exemples concrets pour chaque commande. Que vous soyez sur Debian, Ubuntu, CentOS ou Alpine, vous trouverez ici les réponses à vos problèmes de permissions.

1. sudo: command not found : pourquoi ça arrive et comment installer sudo

Le message sudo: command not found est l’un des premiers obstacles rencontrés par les utilisateurs qui installent Debian ou d’autres distributions minimales. Contrairement à Ubuntu qui installe sudo par défaut, certaines distributions ne l’incluent pas dans l’installation de base.

Pourquoi sudo n’est pas installé ?

Debian, dans sa version de base (netinst), privilégie un système minimaliste. Lors de l’installation, si vous n’avez pas coché l’option « environnement de bureau » et que vous avez créé un compte utilisateur séparé du compte root, sudo n’est pas installé automatiquement. C’est un choix de design : Debian laisse l’administrateur choisir sa méthode d’élévation de privilèges.

Comment installer sudo sur Debian

Si vous avez accès au compte root, connectez-vous en root et installez sudo :

# Se connecter en root
su -

# Mettre à jour les paquets
apt update

# Installer sudo
apt install sudo

# Ajouter votre utilisateur au groupe sudo
usermod -aG sudo votrenom_utilisateur
Résoudre permission denied
💡 Astuce : Après avoir ajouté votre utilisateur au groupe sudo, déconnectez-vous et reconnectez-vous pour que le changement prenne effet. Vous pouvez vérifier en tapant groups : sudo doit apparaître dans la liste.

Installer sudo sur d’autres distributions

# Alpine Linux
apk add sudo

# CentOS / RHEL / Rocky / AlmaLinux
dnf install sudo
# ou sur les anciennes versions :
yum install sudo

# Arch Linux
pacman -S sudo

# openSUSE
zypper install sudo

Vérifier que sudo fonctionne

# Vérifier l'installation
sudo -V

# Tester avec une commande simple
sudo whoami
# Output : root

Si sudo whoami retourne root, tout fonctionne. Si vous obtenez une erreur d’authentification, vérifiez que votre utilisateur est bien dans le groupe sudo (voir section suivante).

⚠️ Attention : Sur certaines installations Debian, le fichier /etc/sudoers peut ne pas inclure le groupe sudo. Vérifiez avec grep sudo /etc/sudoers ou grep sudo /etc/sudoers.d/*. Si nécessaire, ajoutez la ligne %sudo ALL=(ALL:ALL) ALL via visudo.

2. su vs sudo : différences et quand utiliser chacun

Linux propose deux commandes principales pour élever ses privilèges : su et sudo. Bien qu’elles servent le même objectif (exécuter des commandes en tant qu’administrateur), leur fonctionnement est fondamentalement différent.

su (switch user)

La commande su permet de changer d’utilisateur. Sans argument, elle bascule vers le compte root :

# Basculer vers root (demande le mot de passe root)
su -

# Exécuter une commande en tant qu'un autre utilisateur
su - postgres -c "psql -l"

Le - (tiret) est important : il charge l’environnement complet de l’utilisateur cible (variables, PATH, répertoire home). Sans le tiret, vous gardez l’environnement de l’utilisateur source.

sudo (superuser do)

La commande sudo permet d’exécuter une commande unique avec les privilèges d’un autre utilisateur (root par défaut) :

# Exécuter une commande en tant que root
sudo apt update

# Exécuter en tant qu'un autre utilisateur
sudo -u www-data cat /var/log/nginx/access.log

# Ouvrir un shell root (équivalent à su -)
sudo -i
# ou
sudo su -

Tableau comparatif su vs sudo

Critère su sudo
Mot de passe demandé Mot de passe root Mot de passe utilisateur
Durée des privilèges Jusqu’à exit Par commande (cache configurable)
Journalisation Limitée Complète (commande + utilisateur)
Granularité Tout ou rien (root ou pas) Par commande, par utilisateur
Partage du mot de passe root Obligatoire Non nécessaire
✅ Recommandation : Utilisez sudo par défaut. Il offre une meilleure traçabilité, une granularité fine et ne nécessite pas de partager le mot de passe root entre les administrateurs. Réservez su - aux situations d’urgence ou quand sudo n’est pas disponible (comme une installation minimale de Debian).

Configurer le cache de sudo

Par défaut, sudo mémorise votre mot de passe pendant 15 minutes. Vous pouvez modifier ce délai dans /etc/sudoers :

# Via visudo, ajouter :
Defaults timestamp_timeout=30   # 30 minutes
Defaults timestamp_timeout=0    # Toujours demander le mot de passe

3. Les groupes sudo et wheel : ajouter un utilisateur au groupe sudo

Les distributions Linux utilisent des groupes spéciaux pour déterminer quels utilisateurs ont le droit d’utiliser sudo. Les deux noms les plus courants sont sudo (Debian/Ubuntu) et wheel (CentOS/RHEL/Fedora).

Vérifier les groupes sudo configurés

# Voir quels groupes sont autorisés dans sudoers
grep -r "%sudo\|%wheel" /etc/sudoers /etc/sudoers.d/

# Résultat typique sur Debian :
# %sudo   ALL=(ALL:ALL) ALL

# Résultat typique sur CentOS :
# %wheel  ALL=(ALL:ALL) ALL

Ajouter un utilisateur au groupe sudo

# Sur Debian / Ubuntu
sudo usermod -aG sudo utilisateur

# Sur CentOS / RHEL / Fedora
sudo usermod -aG wheel utilisateur

# Sur Alpine Linux (si le groupe wheel est utilisé)
adduser utilisateur wheel

# Vérifier l'appartenance aux groupes
groups utilisateur
# utilisateur : utilisateur sudo adm cdrom dip plugdev lpadmin
💡 L’option -aG est importante : -a (append) ajoute l’utilisateur au groupe sans le retirer de ses groupes actuels. Sans -a, usermod -G sudo utilisateur remplacerait tous les groupes de l’utilisateur par le seul groupe sudo : ce qui causerait des problèmes.

Ajouter un utilisateur lors de l’installation

Sur Debian, vous pouvez installer sudo et configurer l’utilisateur en une seule opération :

# En tant que root
apt install sudo
adduser --ingroup sudo nouvel_user
# Ou pour un utilisateur existant :
usermod -aG sudo nouvel_user
passwd nouvel_user

Accorder sudo à un utilisateur spécifique (méthode avancée)

Au lieu d’utiliser des groupes, vous pouvez créer un fichier dédié dans /etc/sudoers.d/ :

# Créer un fichier de configuration sudo pour un utilisateur
echo "utilisateur ALL=(ALL:ALL) ALL" | sudo tee /etc/sudoers.d/utilisateur
sudo chmod 440 /etc/sudoers.d/utilisateur
🔴 Règle de sécurité : Ne modifiez jamais /etc/sudoers directement avec un éditeur de texte classique. Utilisez toujours visudo qui vérifie la syntaxe avant de sauvegarder. Une erreur dans sudoers peut vous verrouiller totalement l’accès administrateur. Pour les fichiers dans /etc/sudoers.d/, fixez toujours les permissions à 440.

4. Permission denied : comprendre et résoudre les erreurs de permissions

L’erreur Permission denied (bash: /chemin/vers/fichier: Permission non accordée) est l’une des plus fréquentes sous Linux. Elle se produit quand l’utilisateur qui exécute une action n’a pas les droits nécessaires sur le fichier ou le répertoire cible.

Comprendre les permissions Linux

Chaque fichier et répertoire sous Linux possède trois types de permissions pour trois catégories d’utilisateurs :

Permission Symbole Valeur Fichier Répertoire
Lecture r 4 Lire le contenu Lister le contenu
Écriture w 2 Modifier le contenu Créer/supprimer des fichiers
Exécution x 1 Exécuter le fichier Traverser le répertoire (cd)

Et trois catégories d’utilisateurs :

  • u (user/owner) : le propriétaire du fichier
  • g (group) : le groupe propriétaire du fichier
  • o (others) : tous les autres utilisateurs

Lire les permissions avec ls -l

ls -l /var/log/syslog
-rw-r----- 1 syslog adm 245760 Apr  7 10:30 /var/log/syslog

# Décomposition :
# -       : type de fichier (- = fichier, d = répertoire, l = lien)
# rw-     : permissions propriétaire (lecture + écriture)
# r--     : permissions groupe (lecture seule)
# ---     : permissions autres (aucune)
# 1       : nombre de liens physiques
# syslog  : propriétaire
# adm     : groupe
# 245760  : taille en octets
# Apr  7  : date de modification

Cas courants de « permission denied »

Cas 1 : Exécuter un script

# Problème
./monscript.sh
bash: ./monscript.sh: Permission non accordé

# Diagnostic
ls -l monscript.sh
-rw-r--r-- 1 user user 123 Apr 7 10:00 monscript.sh
# Le bit d'exécution (x) manque pour le propriétaire

# Solution
chmod +x monscript.sh
# ou
chmod 755 monscript.sh

Cas 2 : Modifier un fichier système

# Problème
echo "config" >> /etc/nginx/nginx.conf
bash: /etc/nginx/nginx.conf: Permission non accordé

# Diagnostic
ls -l /etc/nginx/nginx.conf
-rw-r--r-- 1 root root 2651 Apr 7 10:00 /etc/nginx/nginx.conf

# Solution 1 : utiliser sudo
sudo nano /etc/nginx/nginx.conf

# Solution 2 : rediriger avec sudo
echo "config" | sudo tee -a /etc/nginx/nginx.conf
⚠️ Piège classique : sudo echo "config" >> /etc/fichier ne fonctionne pas. La redirection >> est effectuée par le shell de l’utilisateur (non privilégié), pas par sudo. Utilisez echo "config" | sudo tee -a /etc/fichier à la place.

Cas 3 : Accéder à un répertoire

# Problème
cd /var/lib/mysql
bash: cd: /var/lib/mysql: Permission non accordé

# Même avec sudo ls, le répertoire peut bloquer l'accès
# Vérifier les permissions du répertoire ET de ses parents
ls -ld /var/lib/mysql
drwx------ 1 mysql mysql 4096 Apr 7 10:00 /var/lib/mysql

# Solution : accéder en tant que l'utilisateur propriétaire
sudo -u mysql ls /var/lib/mysql

Cas 4 : Rédiger ou écrire dans un fichier avec un script

Si votre application web ou votre script n’arrive pas à écrire dans un répertoire, vérifiez :

# Qui exécute l'application ?
ps aux | grep nginx
# www-data  1234  ...  nginx: worker process

# Le répertoire d'écriture appartient à qui ?
ls -ld /var/www/html/uploads
drwxr-xr-x 2 root root 4096 Apr 7 10:00 /var/www/html/uploads

# www-data ne peut pas écrire ! Solutions :
# Option 1 : changer le propriétaire
sudo chown www-data:www-data /var/www/html/uploads

# Option 2 : donner les droits d'écriture au groupe
sudo chmod 775 /var/www/html/uploads
sudo usermod -aG www-data votrenom_utilisateur
✅ Méthode de diagnostic : Face à un permission denied, suivez ces étapes : (1) identifier le fichier/répertoire en cause, (2) vérifier avec ls -l ou ls -ld, (3) vérifier qui vous êtes avec id, (4) ajuster les permissions avec chmod ou le propriétaire avec chown.

5. chmod : modifier les permissions de fichiers

La commande chmod (change mode) modifie les permissions d’accès des fichiers et répertoires. C’est l’outil principal pour résoudre les problèmes de permissions sous Linux.

Notation symbolique

La notation symbolique utilise des lettres pour désigner la catégorie et les permissions :

# Format : qui + quoi fichier
# qui   : u (user), g (group), o (others), a (all)
# action: + (ajouter), - (retirer), = (définir)
# quoi  : r (read), w (write), x (execute)

# Ajouter l'exécution pour le propriétaire
chmod u+x script.sh

# Retirer l'écriture pour les autres
chmod o-w fichier.conf

# Définir lecture+écriture pour le groupe
chmod g=rw fichier.txt

# Ajouter lecture pour tout le monde
chmod a+r readme.md

# Combiner plusieurs modifications
chmod u+x,g+w,o-r fichier

Notation octale (numérique)

La notation octale est plus concise et très utilisée par les administrateurs système :

Octal Binaire Permissions Usage courant
7 111 rwx Scripts, répertoires exécutables
6 110 rw- Fichiers de configuration
5 101 r-x Répertoires, binaires système
4 100 r– Fichiers en lecture seule
0 000 Aucun accès

Permissions courantes et leurs utilisations

# 755 (rwxr-xr-x)  : Scripts et répertoires courants
chmod 755 script.sh
# Propriétaire : tout | Groupe : lire+exécuter | Autres : lire+exécuter

# 644 (rw-r--r--)  : Fichiers de configuration, documents
chmod 644 config.conf
# Propriétaire : lire+écrire | Groupe : lire | Autres : lire

# 700 (rwx------)  : Répertoires personnels, scripts sensibles
chmod 700 ~/.ssh
# Seul le propriétaire a tous les droits

# 600 (rw-------)  : Clés SSH, fichiers sensibles
chmod 600 ~/.ssh/id_rsa
# Seul le propriétaire peut lire et écrire

# 777 (rwxrwxrwx)  : ⚠️ À ÉVITER !
chmod 777 /var/www/html/uploads
# Tout le monde peut faire n'importe quoi
🔴 Jamais de 777 en production ! chmod 777 donne tous les droits à tout le monde. C’est une faille de sécurité majeure. Si vous êtes tenté par chmod 777, c’est probablement que vous avez un problème de propriétaire (chown) qu’il faut résoudre à la racine.

Appliquer chmod récursivement

# Appliquer à tous les fichiers et sous-répertoires
chmod -R 755 /var/www/html/

# Appliquer différemment aux fichiers et aux répertoires
find /var/www/html/ -type d -exec chmod 755 {} \;
find /var/www/html/ -type f -exec chmod 644 {} \;

# Scripts exécutables uniquement
find /var/www/html/ -type f -name "*.sh" -exec chmod 755 {} \;
💡 Bonne pratique : Les répertoires ont généralement besoin du bit d’exécution (x) pour être traversés (cd), mais les fichiers n’en ont besoin que s’ils sont des scripts ou des binaires. Utilisez find pour différencier les deux.

Les permissions spéciales : setuid, setgid, sticky bit

# setuid (4)  : le fichier s'exécute avec les droits du propriétaire
chmod 4755 /usr/bin/passwd
# Quand vous exécutez passwd, il tourne avec les droits root

# setgid (2)  : les nouveaux fichiers héritent du groupe du répertoire
chmod 2775 /var/www/html/
# Les fichiers créés dans /var/www/html/ auront le groupe www-data

# sticky bit (1)  : seul le propriétaire peut supprimer ses fichiers
chmod 1777 /tmp
# Chacun peut créer des fichiers dans /tmp, mais pas supprimer ceux des autres

Vous pouvez repérer ces permissions spéciales dans ls -l :

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 68208 ... /usr/bin/passwd
#  ^ setuid (le 's' à la place de 'x')

ls -ld /tmp
drwxrwxrwt 18 root root 4096 ... /tmp
#               ^ sticky bit (le 't')

6. chown : changer le propriétaire d’un fichier

La commande chown (change owner) modifie le propriétaire et/ou le groupe d’un fichier ou répertoire. C’est souvent la solution correcte quand on est tenté d’utiliser chmod 777.

Syntaxe de base

# Changer le propriétaire
sudo chown www-data /var/www/html/index.html

# Changer le propriétaire et le groupe
sudo chown www-data:www-data /var/www/html/

# Changer uniquement le groupe (équivalent à chgrp)
sudo chown :www-data /var/www/html/

# Utiliser --reference pour copier les permissions d'un fichier
sudo chown --reference=/var/www/html/index.html /var/www/html/about.html

Exemples concrets courants

Web serveur : Nginx / Apache

# Donner les fichiers web à www-data
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
find /var/www/html/ -type f -exec chmod 644 {} \;

Application Node.js

# Application déployée par un utilisateur spécifique
sudo chown -R nodeapp:nodeapp /opt/mon-app/
sudo chmod -R 755 /opt/mon-app/

# Répertoire de logs accessible par l'application
sudo chown -R nodeapp:adm /var/log/mon-app/
sudo chmod 750 /var/log/mon-app/

Partage entre utilisateurs

# Créer un groupe partagé
sudo groupadd devteam

# Ajouter les utilisateurs au groupe
sudo usermod -aG devteam alice
sudo usermod -aG devteam bob

# Créer un répertoire partagé avec setgid
sudo mkdir /opt/projet
sudo chown -R root:devteam /opt/projet
sudo chmod 2775 /opt/projet

# Les fichiers créés par alice ou bob auront automatiquement
# le groupe devteam, et chacun pourra modifier les fichiers de l'autre
✅ Astuce : Le setgid (chmod 2775) sur un répertoire est la meilleure solution pour les répertoires partagés entre plusieurs utilisateurs. Chaque fichier créé hérite automatiquement du groupe du répertoire, évitant les problèmes de permissions.

7. chgrp : modifier le groupe propriétaire

La commande chgrp (change group) modifie uniquement le groupe propriétaire d’un fichier. C’est un raccourci pour chown :groupe fichier.

# Changer le groupe d'un fichier
sudo chgrp www-data /var/www/html/index.html

# Changer le groupe récursivement
sudo chgrp -R www-data /var/www/html/

# Changer le groupe en utilisant un fichier de référence
sudo chgrp --reference=fichier-reference fichier-cible

Quand utiliser chgrp plutôt que chown ?

Utilisez chgrp quand vous voulez modifier uniquement le groupe sans toucher au propriétaire. C’est plus lisible et exprime clairement l’intention :

# Plus lisible :
sudo chgrp docker utilisateur

# Équivalent mais moins explicite :
sudo chown :docker utilisateur

# Quand vous voulez changer les deux, utilisez chown :
sudo chown utilisateur:docker /opt/container

8. umask : permissions par défaut à la création de fichiers

La commande umask définit les permissions par défaut des nouveaux fichiers et répertoires créés. Elle fonctionne en masquant (retirant) des permissions.

Comment fonctionne umask

# Voir le umask actuel
umask
0022

# Le calcul :
# Fichiers   : 666 (rw-rw-rw-) - 022 (-----w--w-) = 644 (rw-r--r--)
# Répertoires: 777 (rwxrwxrwx) - 022 (-----w--w-) = 755 (rwxr-xr-x)
umask Fichiers Répertoires Usage
0022 644 755 Par défaut sur la plupart des systèmes
0027 640 750 Plus sécurisé (pas de lecture pour « others »)
0077 600 700 Strict (privé, groupe et autres exclus)
0002 664 775 Travail collaboratif (groupe peut écrire)

Modifier le umask

# Modifier temporairement (pour la session en cours)
umask 0027

# Modifier de façon permanente pour un utilisateur
echo "umask 0027" >> ~/.bashrc

# Modifier pour tous les utilisateurs
echo "umask 0027" | sudo tee /etc/profile.d/secure-umask.sh
sudo chmod 644 /etc/profile.d/secure-umask.sh

# Vérifier
umask -S
# u=rwx,g=rx,o=rx
✅ Recommandation serveur : Sur un serveur de production, un umask de 0027 est un bon compromis : les fichiers créés ne sont lisibles que par le propriétaire et son groupe. Cela évite que des fichiers sensibles soient accessibles par d’autres utilisateurs du système.

9. Bonnes pratiques de sécurité

Règle n°1 : Principe du moindre privilège

Ne donnez que les permissions strictement nécessaires :

  • Ne pas utiliser chmod 777 : jamais, en aucune circonstance
  • Préférer chown à chmod : si un fichier appartient au bon utilisateur, les permissions par défaut suffisent souvent
  • Limiter sudo : ne donnez sudo qu’aux commandes nécessaires, pas un accès root complet

Règle n°2 : Sécuriser les fichiers sensibles

# Clés SSH
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/authorized_keys

# Fichiers contenant des mots de passe ou des tokens
chmod 600 ~/.env
chmod 600 /etc/.env_db

# Configuration sudoers
chmod 440 /etc/sudoers
chmod 440 /etc/sudoers.d/*

Règle n°3 : Configurer sudo finement

# /etc/sudoers.d/developpeur  : permettre de gérer les services web
# sans donner un accès root complet
developpeur ALL=(ALL) /usr/sbin/systemctl restart nginx
developpeur ALL=(ALL) /usr/sbin/systemctl status *
developpeur ALL=(ALL) /usr/bin/apt update
developpeur ALL=(ALL) /usr/bin/apt upgrade -y
developpeur ALL=(ALL) /usr/bin/tail -f /var/log/nginx/*

# Autoriser un utilisateur à devenir un autre utilisateur spécifique
deploy ALL=(www-data) NOPASSWD: /opt/deploy.sh

Règle n°4 : Journalisation et audit

# Les commandes sudo sont journalisées par défaut
grep sudo /var/log/auth.log

# Ajouter un logging détaillé dans /etc/sudoers
Defaults log_input, log_output
Defaults logfile="/var/log/sudo.log"

# Trouver les fichiers avec des permissions inhabituelles
find / -perm -4000 -type f 2>/dev/null    # setuid
find / -perm -2000 -type f 2>/dev/null    # setgid
find / -perm /6000 -type f 2>/dev/null    # setuid ou setgid

# Trouver les fichiers world-writable (écriture pour tous)
find / -perm -0002 -type f 2>/dev/null

Règle n°5 : Ne jamais travailler en root en permanence

Connectez-vous avec votre utilisateur normal et utilisez sudo uniquement quand c’est nécessaire. Le shell root permanent est un risque de sécurité :

  • Chaque commande exécutée en root a un impact potentiel sur tout le système
  • La journalisation est limitée (pas de traçabilité individuelle)
  • Une faute de frappe peut être catastrophique (rm -rf / au lieu de rm -rf ./)
  • Les shells root permanents contournent les protections sudo
⚠️ Astuce anti-erreur : Ajoutez alias rm='rm -i' dans votre .bashrc pour que rm demande confirmation avant de supprimer. Et utilisez toujours des chemins absolus pour les commandes destructrices.

Résumé des bonnes pratiques

Situation Recommandation À éviter
Fichier de config système 644 root:root 777
Script exécutable 755 777
Clé SSH privée 600 644
Répertoire web 755 www-data:www-data 777
Répertoire uploads 755 www-data:www-data 777
Répertoire .ssh 700 755 ou plus

Questions fréquentes

Comment réinitialiser le mot de passe root si je l’ai oublié ?

Si vous avez oublié votre mot de passe root et que sudo ne fonctionne pas, vous pouvez réinitialiser le mot de passe via le mode rescue ou en utilisant un live USB. Consultez notre guide complet pour réinitialiser un mot de passe oublié sous Linux.

Pourquoi sudo me demande-t-il un mot de passe alors que je viens de le taper ?

Le cache de sudo a expiré (par défaut 15 minutes), ou vous êtes dans un nouveau terminal. Si le problème persiste, vérifiez que vous êtes bien dans le groupe sudo avec groups et que le groupe est bien configuré dans /etc/sudoers.

Quelle est la différence entre chmod et chown ?

chmod modifie les permissions (lecture, écriture, exécution) d’un fichier. chown modifie le propriétaire et le groupe d’un fichier. En pratique, si un utilisateur ne peut pas accéder à un fichier, vérifiez d’abord avec chown qu’il appartient au bon utilisateur, puis ajustez si nécessaire avec chmod.

Comment lister tous les fichiers avec des permissions anormales ?
# Fichiers world-writable
find / -xdev -type f -perm -0002 -print

# Fichiers setuid/setgid
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -print

# Fichiers sans propriétaire valide
find / -xdev -nouser -o -nogroup -print
Comment autoriser un utilisateur à exécuter une seule commande avec sudo ?
# Via visudo ou /etc/sudoers.d/
utilisateur ALL=(root) /usr/bin/systemctl restart nginx
utilisateur ALL=(root) /usr/bin/systemctl reload nginx

Ainsi, l’utilisateur ne pourra exécuter que ces deux commandes spécifiques avec sudo, et rien d’autre.

Pourquoi mon script s’exécute-t-il avec « permission denied » malgré chmod +x ?

Vérifiez plusieurs points : (1) le shebang (#!/bin/bash) est-il présent sur la première ligne ? (2) le fichier a-t-il été créé sous Windows (problème CRLF) ? Utilisez dos2unix script.sh ou sed -i 's/\r$//' script.sh. (3) le système de fichiers supporte-t-il les permissions d’exécution (FAT32/exFAT ne les supportent pas).

Comment voir quelles commandes sudo ont été exécutées ?
# Sur Debian/Ubuntu
grep "COMMAND" /var/log/auth.log

# Sur CentOS/RHEL
grep "COMMAND" /var/log/secure

# Avec journalctl (systemd)
journalctl -u sudo --no-pager | grep COMMAND

Besoin d’aide pour sécuriser votre infrastructure Linux ?

Notre équipe d’experts vous accompagne pour configurer les permissions, sudo et la sécurité de vos serveurs.

Contactez-nous →

Laisser un commentaire