Tout d'abord, une petite remarque terminologique : chmod
ne supprimer autorisations. Il s'agit CHANGEMENTS les.
Et maintenant, le cœur du problème : le mode 777
signifie "Tout le monde peut lire, écrire ou exécuter ce fichier". autorisation donnée à chacun de faire (effectivement) ce qu'il veut.
Pourquoi est-ce mauvais ?
-
Vous venez de permettre à tout le monde de lire/modifier tous les fichiers de votre système.
- Dites adieu à la sécurité des mots de passe (n'importe qui peut lire le fichier shadow et craquer vos mots de passe, mais pourquoi s'en préoccuper ? Changez simplement de mot de passe ! C'est beaucoup plus simple).
- Dites adieu à la sécurité de vos binaires (quelqu'un peut simplement écrire un nouveau fichier
login
qui les laisse entrer à chaque fois).
- Dites adieu à vos dossiers : Un utilisateur se trompe d'adresse
rm -r /
et c'est fini. On a dit à l'OS de les laisser faire ce qu'ils voulaient !
-
Vous avez énervé tous les programmes qui vérifient les autorisations sur les fichiers avant de démarrer.
sudo
, sendmail
et une foule d'autres ne démarrent tout simplement plus. Ils examinent les autorisations des fichiers clés, constatent qu'elles ne sont pas ce qu'elles devraient être et renvoient un message d'erreur.
De même ssh
se cassera la figure (les fichiers de clés doivent avoir des permissions spécifiques, sinon ils sont "non sécurisés" et SSH refusera par défaut de les utiliser).
-
Vous avez effacé les bits setuid / setgid des programmes qui les avaient.
Le mode 777
est en fait 0
777
. Parmi les éléments de ce chiffre de tête figurent les setuid
y setgid
bits.
La plupart des programmes qui sont setuid/setgid ont ce bit activé parce qu'ils doivent fonctionner avec certains privilèges. Ils sont cassés maintenant.
-
Vous avez cassé
/tmp
y /var/tmp
L'autre élément de ce premier chiffre octal qui a été mis à zéro est le sticky bit
-- Ce qui protège les dossiers dans /tmp
(et /var/tmp
) d'être supprimées par des personnes qui ne les possèdent pas.
Il existe (malheureusement) de nombreux scripts scripts de mauvaise qualité qui "nettoient" en faisant un rm -r /tmp/*
et sans le bit collant sur /tmp
vous pouvez dire adieu à tous les fichiers de ce répertoire.
La disparition des fichiers scratch peut vraiment perturber certains programmes mal écrits...
-
Vous avez fait des ravages dans
/dev
/proc
et systèmes de fichiers similaires
Le problème se pose davantage sur les anciens systèmes Unix, où le système /dev
est un vrai système de fichiers, et les éléments qu'il contient sont des fichiers spéciaux créés avec mknod
Cependant, sur n'importe quel système, le fait de modifier les permissions de votre périphérique peut entraîner des problèmes importants, qu'il s'agisse de risques de sécurité évidents (tout le monde peut lire chaque TTY) ou de causes potentielles moins évidentes d'une panique du noyau.
Credit to @Tonny for pointing out this possibility
-
Les douilles et les tuyaux peuvent se briser ou présenter d'autres problèmes. Les sockets et les tuyaux peuvent se briser complètement ou être exposés à des injections malveillantes du fait qu'ils sont rendus inscriptibles dans le monde.
Credit to @Tonny for pointing out this possibility
-
Vous avez rendu tous les fichiers de votre système exécutables
De nombreuses personnes ont .
dans leur PATH
(vous ne devriez pas !) - Cela pourrait causer une surprise désagréable car n'importe qui peut maintenant déposer un fichier commodément nommé comme une commande (disons make
ou ls
et ont une chance de vous faire exécuter leur code malveillant.
Credit to @RichHomolka for pointing out this possibility
-
Sur certains systèmes
chmod
réinitialise les listes de contrôle d'accès (ACL)
Cela signifie que vous risquez de devoir recréer toutes vos listes de contrôle d'accès (ACL) en plus de devoir corriger les autorisations partout (c'est un exemple concret de la destructivité de la commande).
Credit to @JamesYoungman for pointing out this possibility
Les parties du système qui fonctionnent déjà continueront-elles à fonctionner ? Probablement, au moins pendant un certain temps.
Mais la prochaine fois que vous aurez besoin de lancer un programme, de redémarrer un service, ou même de redémarrer la boîte, vous risquez de souffrir car les points 2 et 3 ci-dessus vont se manifester.
3 votes
J'ai retenu mon souffle en voyant cette question.