Je l'ai fait:
sudo chown -R myname /usr/
et maintenant je ne peux pas utiliser la sudo
commande à cause de cette erreur:
sudo: doit être root setuid
Et comme je l'ai lu, cela signifie que le propriétaire de ce fichier /usr/bin/sudo
n'est pas la racine. C'est mon utilisateur maintenant à cause du chown sur le /usr
dossier.
Sur de nombreux forums et blogs, les gens suggèrent de le faire en tant que root:
# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo
... mais le problème avec cela est que je dois me connecter en tant que root, mais je ne peux pas parce que si j'écris su
dans le terminal, le mot de passe est incorrect (en fait j'utilise le mot de passe que j'ai ajouté à mon utilisateur):
$ su
Password:
su: Authentication failure
Puis-je récupérer la sudo
commande?
Edit: Mon Ubuntu est sous Paralells sur mon Mac OS X.
su
, vous serez invité à entrer le mot de passe de root , pas le mot de passe de votre utilisateur comme avecsudo
. Connaissez-vous le mot de passe root de cette machine?sudo chmod -R cirk:cirk /usr
? Qu'essayiez-vous d'accomplir?Réponses:
Si vous avez un système similaire que vous pouvez utiliser comme guide pour voir quelle est la propriété appropriée pour tous les fichiers, vous pouvez démarrer en mode de secours, passer à un shell racine et restaurer manuellement la propriété correcte à tous les fichiers
/usr
.Le moyen le plus rapide peut être de réinstaller votre système d'exploitation ou de restaurer à partir d'une sauvegarde.
Dans Ubuntu ou similaire, il n'y a pas de mot de passe root par défaut (le compte est désactivé), c'est pourquoi vous ne pouvez pas
su
.la source
chown
nonchmod
. Étant donné que tout dans le/usr
dossier devrait êtreroot:root
, cela devrait être une solution facile, pas la correction minutieuse qu'unchmod
clobber signifierait.chown
réinitialise les bits setxid. Il y a quelques fichiers/usr
qui n'appartiennent pas à la racine; plus qui sont dans un groupe différent (en particulier les programmes setgid en/usr/bin
).Étant donné que vous avez appliqué les autorisations sur la seule chose qui vous donne un accès au niveau racine, vous aurez besoin de l'aide de l'extérieur du logiciel actuel pour résoudre ce problème.
Je suggère que le moyen le plus simple consiste à démarrer un LiveCD pour votre distribution, à monter votre lecteur et à modifier les autorisations de fichier à l'aide de ce que
chmod
vous avez répertorié à partir de là.Vous pouvez également essayer de démarrer en mode mono-utilisateur afin d'obtenir un shell racine.
Sachez que généralement tout ce qui se trouve dans le
/usr/
répertoire devrait appartenirroot
, vous devriez donc être en mesure de faire un récursifchown
pour réparer tout ce que vous avez cassé. ( Edit: Per @Gilles commentaires en cours d' exécution apparemmentchown
pauses setuid et les bits setgid, vous aurez besoin de comparer manuellement à un système existant pour restaurer toutes les fois que vous fixer à nouveau la propriété.)Cependant, très FEW devrait être
4111
. Celui-ci est une autorisation spéciale mais qui le fait s'exécuter en tant que root même lorsqu'il est exécuté en tant qu'utilisateur! Seulessudo
et quelques commandes sélectionnées devraient avoir ce bit d'autorisation défini. Si vous n'avez pas exécuté unchmod
pour commencer, vous n'avez probablement pas besoin de résoudre ce problème , toutes les autorisations doivent déjà être correctes. N'exécutez pas une grossechmod
opération sans savoir quelles sont toutes les autorisations.la source
sudo chown -R root /usr/
?/usr
le LivdCD, vous devez le monter quelque part et courir contre ce chemin, disons/mnt/mydrive/usr
. Ensuite, vous devrez fixer le bit setuid/mnt/mydrive/usr/bin/sudo
. Ensuite, regardez dans / usr sur le livecd et voyez s'il y a d'autres propriétaires que root.find /usr -not -uid 0
et changez-les pour qu'ils correspondent. Ensuite, recherchez les éléments qui ont des bits setuid ou setgid différents et assurez-vous qu'ils correspondent également. Si vous avez un vrai système Ubunutu à comparer, ce serait mieux.En mode de récupération Ubuntu, entrez les commandes suivantes .. Cela a résolu le problème pour moi ..
J'espère que cela résoudra votre problème (ou celui de quelqu'un d'autre)
J'ai trouvé celui-ci ici dans cet article de blog .
la source
C'est beaucoup plus facile que ne le suggèrent les autres réponses. Pas besoin de formater, redémarrer ou utiliser un CD live.
C'est le moyen le plus simple de résoudre ce problème. Explication, sudo est corrompu (je sais que corrompu n'est pas le bon terme, mais il ne fonctionne pas, nous devons donc éviter d'utiliser sudo)
J'ai testé cette méthode sur Linux mint. C'est un système de type ubuntu. Faites-moi savoir que cette méthode ne fonctionne sur aucun autre système d'exploitation. Met à jour la réponse en conséquence.
Merci
la source
su root
, et parce quesudo
cela ne fonctionne pas, il est impossible de définir le mot de passe rootC'est plus simple que les gens ne le font. Essayez ce qui suit:
su
commande cassée , déconnectez-vous en tant qu'utilisateur actuel et reconnectez-vous en tant que root via votre gestionnaire d'affichage normal (c'est-à-dire l'écran de connexion).chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
Cela devrait corriger la
sudo
commande et vous permettre de redémarrer en un rien de temps.la source
Pour vous connecter en tant que root, sans su ou sudo, vous pouvez utiliser pkexec:
Modifiez maintenant les autorisations des fichiers:
la source