Je suis entré chmod -R 777 /usr/bin
et maintenant sudo ne fonctionne pas.
Ça dit sudo must be setuid root
.
Certains conseils en ligne ont dit de fonctionner chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
.
En entrant, chown root:root /usr/bin/sudo
il affiche une opened in readonly mode
erreur.
permissions
sudo
root
chmod
Manoj Kumar
la source
la source
pkexec
méthode dans ma réponse (que vous avez marqué comme accepté) résoudre ce problème pour vous? Je suis devenu convaincu que, comme l'ont fait remarquer Damien Roche et Oli, cette méthode ne fonctionne pas réellement après l'sudo chmod -R 777 /usr/bin
exécution d' une commande . Commesudo
,pkexec
doit être setuid root pour fonctionner. (Je ne sais pas pourquoi, car il utilise le service polkit , mais il le fait.) Cependant, je pense avoir entendu d'autres personnes dire que cela a fonctionné pour eux, ce qui est curieux! Aviez-vous appuyé sur Ctrl + C avant la fin de la777
commande chmod?sudo chmod -R 777 /usr/bin
, mais uniquement après la connexion auroot
compte.Réponses:
Sur un système de bureau Ubuntu, PolicyKit est installé, il
pkexec
peutsudo
sudoers
donc être utilisé pour réparer un fichier exécutable ou un fichier cassé . Vous n'avez pas besoin de démarrer en mode de récupération et vous n'avez pas besoin de démarrer à partir d'un CD live. Vous n'avez même pas besoin de redémarrer.Dans ce cas, exécutez les commandes suivantes:
Voir cette question pour plus d'informations.
la source
pkexec must be setuid root
! Quel cauchemard!pkexec
exactement dans la même situation quesudo
. C'est normalement setuid et vit/usr/bin
. Je l'ai testé et cela ne fonctionne pluschmod -R 777 /usr/bin
.pkexec
racine setuid doit fonctionner (ne fonctionne-t-elle pas via le démon polkit comme les autres processus non-setuid?), Mais elle en a besoin. J'ai commenté la question pour voir si le PO (qui l'a accepté) peut faire la lumière sur ce qui, le cas échéant, est juste ou utile à propos de cette réponse. Et j'ai ajouté une bannière temporaire en haut de ce message afin de ne pas induire en erreur. Si cette réponse continue d'exister, sa forme améliorée incorporera probablement quelques informations actuellement dans cette bannière.su
, qui se trouve sous / bin/usr/bin
nécessite des privilèges root, mais vous ne pouvez passu
rooter sur la plupart des systèmes Ubuntu car les connexions root sont désactivées par défaut. Contrairement àsudo
etpkexec
, lorsque vous utilisezsu
pour obtenir un shell root ou pour exécuter une commande en tant que root, vous devez fournir le mot de passe de root, pas le vôtre. Mais root n'a pas de mot de passe par défaut dans Ubuntu (c'est-à-dire que l'authentification par mot de passe pour root échouera toujours, pas que la saisie d'un mot de passe vide fonctionnerait). Voir RootSudo pour plus de détails.Même lors de l'exécution à partir du CD / Pendrive en direct, vous devez préfixer votre
chmod
commande avecsudo
. Vos étapes seront donc les suivantes:sudo chmod 0755 <path>
pour ajuster les autorisationsComment savoir où votre disque est monté: à partir d'une fenêtre de terminal, exécutez
mount
(sans arguments). Cela répertoriera tous les périphériques montés. Vérifiez latype
liste - vous pouvez ignorer tout ce qui n'utilise pas un "vrai système de fichiers" (votre disque utilise probablement ext3 ou ext4 - vous pouvez certainement ignorer des choses comme proc, sysfs et autres). Si quelque chose semble prometteur (ressemblant à/dev/sda1 on /media/sda1 type ext3
), vérifiez son contenu en utilisantls /media/sda1
pour voir si c'est ça.S'il n'est pas monté, vous pouvez vérifier avec les
/dev
entrées où le disque pourrait être (en utilisantls /dev/ |grep '/dev/sd
pour vérifier les périphériques disponibles; votre disque devrait ressembler/dev/sdaX
,/dev/sdbX
ou similaire - avec X étant un nombre). Comparez cela avec la liste des appareils montés. S'il n'est pas là, essayez de le monter et vérifiez son contenu (comme indiqué ci-dessus). Pour le monter, créez d'abord un point de montage, par exemplesudo mkdir /mnt/mydisk
, puis essayez de monter le périphérique à l'aidemount /dev/sda1 /mnt/mydisk
et vérifiez son contenu à l'aidels /mnt/mydisk
.Une fois que vous obtenez le bon disque là - bas, vous pouvez aller modifier les autorisations retour sur votre répertoire usr:
sudo chmod 0755 /mnt/mydisk/usr
.Maintenant, vous pouvez toujours avoir des problèmes si vous avez initialement exécuté la
chmod
commande récursivement, en utilisant le-R
paramètre. Dans ce cas, vous pouvez soit essayer de corriger chaque entrée manuellement - soit aller directement pour une nouvelle installation ...la source
mount /dev/sda /mnt/mydisk
deroot@Ubuntu:/dev#
mkdir -p /mnt/mydisk && mount /dev/sda1 /mnt/mydisk
(je ne pense pas que vous n'ayez pas de partitions/dev/sda
, vous devez donc également avoir manqué le numéro de partition. Assurez-vous de spécifier le bon périphérique (ou le montage échouera).Je pense que Mat a raison, vous devez être root pour ajouter le bit à / usr / bin, mais bien sûr sudo est cassé. Si vous avez un mot de passe root, vous pouvez l'utiliser pour vous connecter en tant que root, puis corriger les autorisations avec la commande ci-dessus. Si vous ne le faites pas, cependant (et moi non plus), il serait probablement préférable de:
Root est toujours le numéro d'utilisateur 0, donc root sur n'importe quel système peut effectuer des modifications autorisées sur root sur d'autres systèmes de fichiers.
la source
Je n'ai pas beaucoup de connaissances. Mais ces étapes ont résolu mon problème même sans redémarrer ma machine. Suivez ces étapes:
la source
root
, ce qui n'est pas la configuration par défaut d'Ubuntu.Dans une tentative de définir des autorisations pour mes scripts locaux, j'ai rompu l'autorisation sudo et changé de propriétaire, par erreur. J'ai pu rétablir la propriété de sudo en root en procédant comme suit:
Étape 1: Passez en mode de récupération ubuntu . Si vous n'êtes pas au courant du processus, vous pouvez renvoyer une réponse ici: /ubuntu//a/172346/223901
Étape 2: Une fois en mode de récupération, sélectionnez root - Invite Drop to root shell
Étape 3: effectuez les commandes suivantes
Attendez que votre système démarre normalement et vous verrez la propriété de sudo revenir à la racine.
la source