linux change permissions for file

linux change permissions for file

J'ai vu un administrateur système perdre son poste en moins de dix minutes parce qu'il pensait maîtriser l'opération Linux Change Permissions For File sur un serveur de base de données critique. Le scénario est classique : une application refuse d'écrire dans un dossier de logs, le développeur s'impatiente, et l'administrateur, pour aller vite, lance un grand coup de balai récursif sur les droits d'accès. En trois secondes, les fichiers de sockets, les certificats SSL et les exécutables binaires se sont retrouvés avec des droits incohérents. Le serveur n'a pas seulement cessé de fonctionner, il est devenu un gruyère de sécurité incapable de redémarrer après le premier crash. Ce n'est pas une petite erreur de syntaxe, c'est une faute professionnelle qui coûte des journées entières de restauration de sauvegardes et des milliers d'euros en perte d'exploitation.

L'illusion du sept cent soixante-dix-sept comme solution miracle

C'est le piège le plus grossier, et pourtant, je le croise toutes les semaines. Un utilisateur rencontre une erreur de type "Permission denied". Au lieu de chercher quel utilisateur ou quel groupe doit posséder le droit d'écriture, il tape machinalement la commande pour donner tous les droits à tout le monde. On appelle ça le mode "Portes Ouvertes". Si vous faites cela sur un fichier de configuration sensible, comme /etc/ssh/sshd_config, le service SSH refusera tout simplement de démarrer pour des raisons de sécurité. Le système est plus intelligent que vous : il sait qu'un fichier de configuration lisible et modifiable par n'importe qui est une faille béante.

La solution ne consiste pas à augmenter les privilèges jusqu'à ce que ça marche, mais à réduire le périmètre au strict nécessaire. Si votre serveur Web Nginx doit lire un fichier, il faut que ce fichier appartienne au groupe www-data et possède les droits de lecture. Rien de plus. Donner les droits d'exécution à un script PHP qui n'en a pas besoin, c'est offrir une arme chargée à n'importe quel injecteur de code qui passerait par là. J'ai vu des serveurs de fichiers entiers être chiffrés par un ransomware parce qu'un stagiaire avait appliqué ce fameux mode universel sur la racine des partages réseau, pensant régler un problème de partage d'imprimante.

Le danger mortel de l'option récursive mal maîtrisée

Utiliser le drapeau -R sans réfléchir est la méthode la plus rapide pour transformer un incident mineur en catastrophe majeure. Imaginons que vous vouliez changer les accès d'un dossier de projet situé dans /var/www/. Par mégarde, vous insérez un espace entre le slash et le nom du dossier, ou vous lancez la commande Linux Change Permissions For File depuis la racine avec un chemin mal défini. Le système va parcourir l'intégralité de l'arborescence, modifiant les droits des fichiers système essentiels.

Pourquoi la récursivité aveugle est une erreur de débutant

Le problème, c'est que Linux traite les dossiers et les fichiers différemment pour une raison précise. Pour entrer dans un dossier, vous avez besoin du droit d'exécution. Pour lire un fichier, le droit de lecture suffit. Si vous appliquez les mêmes droits de manière globale, soit vos dossiers deviennent inaccessibles parce qu'ils n'ont plus le bit d'exécution, soit vos fichiers deviennent exécutables, ce qui est une aberration totale pour des documents texte ou des images.

Dans mon expérience, la bonne approche utilise toujours des outils de recherche granulaires comme find. Au lieu de tout écraser, on cible spécifiquement les répertoires pour leur mettre un certain type d'accès, puis les fichiers pour un autre. C'est plus long à taper, certes, mais ça évite de passer sa nuit à reconstruire une hiérarchie de permissions que vous avez bousillée en une pression sur la touche Entrée.

Ignorer le concept de l'appartenance avant de toucher aux droits

Beaucoup se focalisent sur les chiffres (le fameux mode octal) sans jamais regarder qui possède le fichier. C'est une erreur de diagnostic fondamentale. Changer les permissions d'un fichier qui appartient à root pour permettre à un utilisateur standard de le modifier est souvent la mauvaise réponse. La question n'est pas "quels sont les droits ?", mais "qui est le propriétaire ?".

Si vous avez un fichier dont vous devez modifier le contenu régulièrement via un script, le bon réflexe est d'utiliser chown pour ajuster le propriétaire ou le groupe, plutôt que d'élargir les permissions avec l'opération Linux Change Permissions For File. J'ai assisté à des audits de sécurité où des entreprises françaises ont été recalées parce que leurs scripts de déploiement laissaient traîner des fichiers appartenant à l'utilisateur admin avec des droits trop larges, au lieu de créer des utilisateurs dédiés aux services (des "service accounts") avec des droits restreints.

Comparaison concrète entre une gestion bâclée et une gestion professionnelle

Prenons l'exemple d'un dossier de téléchargement pour un site e-commerce.

L'approche catastrophique : L'administrateur voit que les images ne s'affichent pas. Il se connecte en root et lance une commande pour mettre tout le dossier en mode 777. Les images s'affichent, il est content. Deux semaines plus tard, un attaquant utilise une faille dans le formulaire d'upload pour envoyer un script malveillant. Comme le dossier a les droits d'exécution pour tout le monde, l'attaquant exécute son script, accède à la base de données et vole les informations bancaires des clients. L'entreprise perd la confiance de ses utilisateurs et fait face à une amende de la CNIL.

L'approche professionnelle : L'administrateur identifie que le serveur Web appartient à l'utilisateur www-data. Il change le propriétaire du dossier de téléchargement pour www-data et définit le groupe sur www-data. Il applique ensuite des droits stricts : lecture et écriture pour le propriétaire, lecture seule pour le groupe, aucun droit pour les autres. Surtout, il retire explicitement le droit d'exécution sur tout le dossier. L'attaquant tente d'envoyer son script, mais lorsqu'il essaie de le lancer, le système refuse l'exécution. Les données sont sauves, le serveur est protégé.

La confusion entre les droits standards et les listes de contrôle d'accès (ACL)

On croit souvent que le système de base (Propriétaire / Groupe / Autres) suffit à tout gérer. Dans un environnement complexe, c'est faux. Si vous essayez de donner des accès spécifiques à trois utilisateurs différents sans qu'ils soient dans le même groupe, vous allez finir par faire n'importe quoi avec les permissions standards. Vous allez élargir les droits du groupe "Autres", ce qui est le début de la fin.

Dans les infrastructures modernes, on utilise les ACL (Access Control Lists). Cela permet d'être chirurgical. J'ai vu des ingénieurs se battre avec des commandes complexes pendant des heures alors qu'un simple setfacl aurait permis de donner un accès en lecture à un utilisateur spécifique sans toucher au reste de la structure. Ne pas connaître cet outil, c'est comme essayer de réparer une montre avec un marteau : vous allez peut-être réussir à faire bouger les aiguilles, mais vous allez casser le mécanisme.

Ne pas tester l'impact sur les liens symboliques

C'est un point technique qui piège même les plus vieux briscards. Quand vous changez les droits sur un lien symbolique, que se passe-t-il ? Sur beaucoup de systèmes, l'action remonte jusqu'à la cible du lien. J'ai connu un cas où un technicien a voulu modifier les droits d'un lien dans son dossier personnel qui pointait, sans qu'il le sache vraiment, vers une bibliothèque partagée du système. En voulant se donner les droits d'écriture sur ce "fichier", il les a donnés sur une ressource utilisée par tout l'OS.

Résultat : n'importe quel utilisateur pouvait modifier la bibliothèque, permettant une élévation de privilèges immédiate. Le serveur a dû être réinstallé de zéro car on ne pouvait plus garantir l'intégrité des binaires. Il faut toujours vérifier si l'on manipule le lien ou la cible, surtout quand on travaille dans des environnements de développement où les liens symboliques sont partout.

Oublier le bit "Sticky" et les droits spéciaux SUID/SGID

Il existe des permissions spéciales qui ne sont pas de simples chiffres de lecture ou d'écriture. Le bit SUID, par exemple, permet à un fichier d'être exécuté avec les privilèges de son propriétaire (souvent root). Si vous modifiez les droits d'un tel fichier sans comprendre ce que vous faites, soit vous cassez le programme (comme passwd qui permet aux utilisateurs de changer leur mot de passe), soit vous créez une faille de sécurité majeure.

💡 Cela pourrait vous intéresser : byd bymycar toulon la garde

Le "Sticky Bit", souvent utilisé sur le dossier /tmp, empêche un utilisateur de supprimer les fichiers d'un autre, même s'ils ont tous les deux les droits d'écriture dans le dossier. J'ai vu des serveurs de calcul partagés devenir totalement inutilisables parce qu'un utilisateur avait supprimé ce bit par erreur, provoquant une guerre interne où les scripts des uns supprimaient les résultats des autres par simple collision de noms de fichiers.

Vérification de la réalité

On ne devient pas un expert des permissions en apprenant des codes octaux par cœur. La vérité, c'est que si vous passez plus de cinq minutes par jour à ajuster des permissions manuellement, c'est que votre architecture est mal conçue. Dans un monde professionnel sérieux, les permissions sont gérées par des scripts de déploiement automatisés, des outils de gestion de configuration comme Ansible, ou des politiques de sécurité héritées de manière cohérente.

Si vous en êtes à taper des commandes au jugé sur un terminal pour "voir si ça débloque le site", vous jouez avec le feu. Les permissions Linux sont impitoyables : elles ne font que ce que vous leur dites, pas ce que vous voulez qu'elles fassent. La sécurité n'est pas un obstacle au travail, c'est le travail. Si vous trouvez que gérer les droits d'accès est une perte de temps, attendez de voir combien de temps vous perdrez quand votre système aura été compromis à cause d'un dossier en 777. Soyez paranoïaque, soyez précis, et surtout, arrêtez de croire que le mode récursif est votre ami. Il est votre pire ennemi dès que vous dépassez le cadre de votre dossier personnel.

CT

Chloé Thomas

Dans ses publications, Chloé Thomas met l'accent sur la clarté, l'exactitude et la pertinence des informations.