Voir aussi:
Pourquoi «chmod -R 777 /» est-il destructeur?
J'ai modifié les autorisations de fichiers de manière récursive sur le répertoire racine /
en exécutant sudo chmod -R / 777
, et après cela, mon système ne démarre pas (je reçois beaucoup d'erreurs "autorisation refusée").
Veuillez aider.
permissions
ubuntu-10.04
boot
Marcin
la source
la source
Réponses:
Vous regardez une cause perdue. Enregistrez les données dont vous avez besoin et réinstallez le système d'exploitation.
la source
/etc
,/var/www
le contenu du serveur Web et les bases de données. Prenez un autre disque dur, activez-le comme principal et installez-le. Cela conserve votre autre disque comme sauvegarde jusqu'à ce que vous puissiez le transférer.Je sais que dpkg stocke les autorisations dans les bases de données et j'ai trouvé le script google suivant qui peut aider.
Edit: J'ai en fait jeté un coup d'œil au script et il semble qu'il manque un peu de magie qui passe de PERMS à MODE, par exemple dpkg -c donne par exemple "-rw-r - r--" mais vous voulez 0644, je suis au travail en ce moment donc je ne suis pas sûr d'avoir le temps de faire la conversion à cet instant mais je pourrai revenir plus tard si personne d'autre n'est intervenu pour ajouter ce bit.
Il y a un script ici qui semble intéressant
la source
Il est possible de revenir d'une situation aussi désordonnée , sans réinstaller le système. Eh bien, plus exactement, exécutez un nouveau système à partir d'une clé USB ou dans une boîte Virutal (ou ainsi) si vous avez un système à double démarrage.
J'ai exécuté à nouveau le même type sur le problème (un bug dans un script que j'écrivais) et l'ai résolu, mais vous devez demander l'aide d'un expert. Soyez très prudent!
Tout d'abord, ma situation était plus facile à résoudre car j'avais un système à double démarrage (ubuntu et mon ancienne installation fedora), mais exécuter le système pour une clé USB (ou peut-être un CD / DVD) devrait faire la même chose.
MPOINT = / mount / ubuntu
J'ai d'abord monté mes systèmes de fichiers comme ceci (n'oubliez pas de créer les points de montage): mount / dev / ubuntu / root $ MPOINT mount / dev / ubuntu / home $ MPOINT / home
Ensuite, j'ai exécuté la commande suivante (mon problème n'était que dans quelques répertoires - critiques -) pour copier les autorisations du système en cours d'exécution sur le système en désordre (en fait, dans mon cas, j'ai installé un système ubuntu dans Virtual Box sous fedora et y a obtenu les autorisations):
trouver / etc / usr / bin -exec stat --format "chmod% a $ {MPOINT}% n" {} \; > /tmp/restoreperms.sh
Et puis j'ai exécuté le script restoreperms.sh.
J'ai pu à nouveau démarrer sur Ubuntu.
Le contenu de restoreperms.sh sera quelque chose comme:
Je ne l'ai pas testé mais cela doit aussi fonctionner pour les propriétaires et les groupes de propriétaires. Quelque chose comme:
trouver / etc / usr / bin -exec stat --format 'chown% U:% G $ {MPOINT}% n' {} \; > /tmp/restoreperms.sh^
Bien sûr, vous devez faire attention ici, que l'UID et le GID sont les mêmes sur les deux systèmes, mais pour les utilisateurs et les groupes liés au système, cela ne devrait pas être un problème.
Rk:
Une chose importante pour cela est de garder un disque d'installation synchronisé avec la version que vous utilisez, ou au moins de travailler avec la version actuelle d'ubuntu. Maintenant, j'ai ces commandes dans un cronjob, en cours d'exécution tous les jours (peut-être des semaines) afin de conserver ces informations. Cela facilitera la solution la prochaine fois, mais, bien sûr, comme je l'ai maintenant, cela ne se reproduira plus. ;-) Quelque chose comme ça:
EDIT: pour supporter les liens, la commande combinée est:
/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {}
la source
J'ai modifié le script d'en haut et ça ressemble à ceci:
la source
D'accord avec blueben, la simple réinstallation peut être plus rapide que d'analyser quel fichier / répertoire a besoin de quelle autorisation. Mais si la réinstallation n'est pas une option, voici une idée:
find / | xargs stat -c 'chmod %a "'%n'"' > /tmp/chmod.sh
chmod.sh
sur l'ordinateur avec les mauvaises autorisationschmod +x /tmp/chmod.sh && /bin/bash /tmp/chmod.sh
la source
ERRATUM à mon message publié en tant qu'utilisateur user100740: pour prendre en charge les liens, la commande combinée est:
la source
Si vous pouvez toujours lancer
/usr/sbin/synaptic
, il est souvent réparable.Triez les packages par état (packages installés en haut), sélectionnez tous les packages installés, cliquez avec le bouton droit et sélectionnez réinstaller. Ensuite, appliquez, cela vous demandera
dpkg
de ré-extraire tous les fichiers de ces packages. (Vous perdrez toutes les modifications locales (mais pas les modifications du fichier de configuration).)Il se peut cependant que tout ne soit pas réparé.
L'autre chose est que si vous allez dans
/var/cache
, vous pouvez appelerdpkg -x <package name> /
pour chaque paquet installé, puis appelerdpkg --reconfigure -a
. De plus, si vous utilisez Ubuntu, vous pouvez effectuer une mise à niveau dist qui corrige souvent de nombreuses erreurs (en supposant que vous n'êtes pas déjà sur la dernière version). Généralement, lorsque j'essaie de corriger une erreur comme celle-ci, j'essaie ces correctifs simples et s'ils ne font pas que le faire fonctionner à nouveau, il est temps de réinstaller.la source
démarrer à partir d'un CD live. puis lancez shell, puis sudo -s. Puis chmod 777 / *, puis chmod 600 / etc / passwd. le noyau paniquera si init échoue, ce qui se produira si les scripts / lib / init ne sont pas exécutables. démarrer en mode mono-utilisateur, pour Lilo Linux 1, et exécuter le script de user102453 ci-dessus. Cela amène le démarrage du système à l'invite. Encore faut-il que X fonctionne.
la source
La définition de l'autorisation de / à 755 a fonctionné pour moi.
Alors vérifiez d'abord avec
Les autorisations doivent être "drwxr-xr-x" (755).
la source