J'ai exécuté la commande suivante accidentellement
Sudo chown [username] -hR /
Maintenant, Sudo su
obtient une erreur:
Sudo: /usr/bin/Sudo must be owned by uid 0 and have the setuid bit set
Comment résoudre ceci?
Sauvegardez vos données et réinstallez-les.
Cela semble probablement extrême, mais ce n’est pas simplement Sudo
name__. Vous avez détruit la structure des autorisations de votre système de fichiers entier. Certaines des autres réponses peuvent faire fonctionner Sudo
name__, mais ignorer tout le problème consiste à inviter un sinistre ultérieur.
Vous pouvez essayer de mettre en miroir les propriétaires d’une autre installation, mais il existe des cas (/var/
par exemple) qui dépendent fortement de ce que vous avez réellement installé. Si vous voulez avoir une idée du problème, J'ai déjà essayé d'aider quelqu'un à résoudre ce genre de problème auparavant . Le correctif est manuel, long et pourrait facilement laisser votre système non sécurisé ou en panne.
Traverser ce gâchis prendra beaucoup plus de temps qu'une installation propre.
Quelques personnes qui ne comprennent pas la gravité de la situation ici se sont rendues au volant. Pour eux, cela ressemble à une grosse pile de travail inutile, le genre de chose qu'un plombier ou un mécanicien non autorisé dit de vous secouer pour un plus gros travail.
Si vous avez uniquement modifié les autorisations sur /usr/bin/Sudo
, corrigez-le. Mais cette question concerne un changement total du système. Chaque fichier (sauf les fichiers d'exécution seulement) est maintenant la propriété de l'utilisateur. Tout ce que l’utilisateur exécute (par exemple, les navigateurs, les exploits de navigateur ) pourrait alors écraser les fichiers système, vous espionner, extraire des données. Ceci doit être corrigé. Par dessus, c'est difficile. Le moyen le plus simple est une réinstallation.
Alors s'il vous plaît, ne soyez pas paresseux à ce sujet. Les autorisations de système de fichiers vous aident à rester en sécurité, à les réparer.
Comme vous pourrez le lire sur cette réponse sur SO , ce problème est pas aussi difficile que les gens le font. La commande Sudo
a de nouveau fonctionné sans réinstallation en procédant comme suit:
chown root:root /usr/bin/Sudo && chmod 4755 /usr/bin/Sudo
Cela fait l'affaire et est beaucoup plus rapide et moins douloureux que "l'option nucléaire" recommandée dans d'autres réponses.
Si votre mot de passe root n'est pas défini, vous pouvez démarrer en mode de récupération pour le définir.
passer en mode de récupération en appuyant sur Esc lors du démarrage du système.
sélectionnez l'option root dans la longue liste que vous pouvez voir après être entré en mode de récupération (il s'agit en fait de Shell)
type command - mount -o remount /
(ou en récupération, vous pouvez cliquer sur l’option grub. Cela m’a aidé à obtenir des autorisations de lecture-écriture sur le système de fichiers. Cela a fondamentalement mis à jour le mode lecture/écriture sur le système de fichiers car la commande ne fonctionnait pas initialement pour moi. )
Il remontera votre système de fichiers en mode lecture et écriture.
commande - chown -R root:root /usr
cette commande va changer la propriété de "utilisateur" à root de manière récursive
maintenant, j’avais toujours un problème avec la commande Sudo
; j’ai donc suivi à nouveau les étapes 1, 2, 3 et exécuté chmod 4755 /usr/bin/Sudo
Maintenant, je pense vraiment que la réinstallation aurait été vraiment une "option nucléaire"
Avait le même problème sur ma gouttelette sur Digital Ocean.
Sudo: /usr/bin/Sudo
doit appartenir à uid 0
et avoir le bit setuid
défini. Ci-dessous sont des commandes que ive exécuter et redémarrer après.
chown -R root:root /usr/bin/Sudo
chmod -R a=rx,u+ws /usr/bin/Sudo
chown -R root:root /usr/lib/Sudo/sudoer.so
chmod -R a=rx,u+ws /usr/lib/Sudo/sudoer.so
J'espère que ça aide.
Malheureusement, si vous ne disposez pas d'une sauvegarde complète, la meilleure chose à faire à ce stade est probablement de la réinstaller.
Considérez que vous avez changé la propriété de tous les fichiers pour le même utilisateur, dérangeant complètement le paradigme de la sécurité de votre système ....
Si vous recherchez sur ce site, il y a beaucoup de problèmes similaires avec chmod, comme par exemple Comment puis-je récupérer de chmod -R a-wrx/command?
Les méthodes ci-dessus ne fonctionnaient pas pour moi car je ne pouvais pas me "reconnecter en tant que root" (mot de passe inconnu). Mais j'ai obtenu un shell root en le modifiant.
vi /etc/lightdm/lightdm.conf
autologin-user=root
greeter-show-manual-login=true
Après avoir redémarré, j'ai enfin pu courir
chown root:root /usr/bin/Sudo && chmod 4755 /usr/bin/Sudo
Je n'ai pas pu modifier le fichier lightdm.conf
sous le système en cours d'exécution. J'ai corrigé des choses comme ceci:
/etc/lightdm/lightdm.conf
sur l'installationSudo -H gedit /mnt/etc/lightdm/lightdm.conf
et ajoutez les lignes suivantes de réponse d'Anno2001
autologin-user=root
greeter-show-manual-login=true
redémarrer
commande d'exécution:
chown root:root /usr/bin/Sudo && chmod 4755 /usr/bin/Sudo
Rétablissez l'utilisateur par défaut dans /etc/lightdm/lightdm.conf
(vous ne voulez pas vous connecter automatiquement en tant que root, ce qui serait très dangereux et non sécurisé)