Est-ce que sudo peut être réinstallé après avoir été retiré?

58

Cela semble être un problème d'œuf de poule. La tâche la plus courante en utilisant sudo consiste à installer et supprimer des logiciels.

sudo apt-get purge <appname>

Mais sudo lui-même peut être supprimé.

sudo apt-get purge sudo # Do not run this command on production computers!

C'est là que vient le plaisir

[email protected]:~$ sudo
bash: /usr/bin/sudo: No such file or directory

Bien qu'il soit évident que personne dans son esprit ne purgera sudo (autre que moi), quelqu'un peut être trompé pour exécuter cette commande (pas directement, dans son mode hexadécimal ou autre) ça s'appelle) ou une personne pourrait SSH déguisée en gourou de la technologie et faire le gâchis .

Y a-t-il un moyen de réinstaller sudo?

    
posée Registered User 15.03.2014 - 10:24
la source

7 réponses

52

Je peux installer des applications en utilisant:

pkexec apt-get install <appname>

De man pkexec :

  pkexec allows an authorized user to execute PROGRAM as another user. If
  username is not specified, then the program will be executed as the
  administrative super user, root.

Donc, je suppose que pkexec apt-get install sudo devrait aussi bien fonctionner.

Modifier : maintenant, je peux confirmer: oui , sudo peut être installé en utilisant pkexec apt-get install sudo :

( cliquez pour agrandir )

    
réponse donnée Radu Rădeanu 15.03.2014 - 10:38
la source
28

Vous pouvez toujours démarrer dans Mode de récupération , accéder au shell racine et l’installer sans sudo.

    
réponse donnée Vojtech Trefny 15.03.2014 - 10:37
la source
22

Oui, il serait possible de réinstaller le package sudo via la méthode chroot .

  • Premier démarrage à partir d’un disque Ubuntu en direct.

  • Montez la partition Ubuntu précédemment installée dans le répertoire de votre choix. Dans mon cas, je l'ai monté dans /media/ubuntu .

    sudo mkdir /media/ubuntu
    sudo mount /dev/sdaX /media/ubuntu   # /dev/sdaX - previously installed Ubuntu partition.
    
  • Par défaut, vous ne parvenez pas à obtenir une connexion Internet après avoir chrooté dans une partition. Exécutez la commande ci-dessous pour la faire fonctionner.

    for d in dev sys run proc; do sudo mount --bind /$d /media/ubuntu/$d ; done
    

Merci à @Oli pour cette merveilleuse pièce de code .

  • Maintenant, chrootez dans ce répertoire monté,

    $ sudo chroot /media/ubuntu
    # apt-get update
    
  • Installez le package sudo en exécutant,

    # apt-get install sudo
    
  • Maintenant, quittez l'environnement chrooté.

    exit
    
  • Enfin, démarrez votre système d'exploitation Ubuntu. Maintenant, testez votre commande sudo , cela fonctionnera sûrement.

réponse donnée Avinash Raj 15.03.2014 - 10:47
la source
4

Démarrez avec le paramètre supplémentaire init=/bin/sh sur la ligne de commande du noyau. Cela vous placera directement dans un shell racine, à partir duquel vous pouvez simplement exécuter apt-get install sudo puis redémarrer. Vous devrez peut-être exécuter /etc/init.d/networking start pour obtenir une connexion réseau active en premier. Bien plus simple que de jouer avec des CD de récupération ou des disques live, si vous me le demandez.

    
réponse donnée Jules 17.03.2014 - 07:46
la source
1

Si vous avez déjà défini ou mis à jour le mot de passe du compte utilisateur root à l'aide de cette commande sudo passwd root , vous ne devez pas supprimer sudo . Connectez-vous à votre compte root puis installez sudo ,

su
apt-get install sudo

Cliquez ici pour agrandir

    
réponse donnée Avinash Raj 17.03.2014 - 06:10
la source
-1

sudo (et tout autre privilège root) ne s'applique qu'au système d'exploitation en cours d'exécution. Si vous avez été stupide et enlevé sudo (ou / usr / d'ailleurs) et que vous n'avez pas d'alternative comme pkexec, vous pouvez simplement démarrer à partir de quelque chose d'autre, copier le logiciel manquant et redémarrer.

L'accès physique annule toute sécurité logicielle que votre système peut avoir.

    
réponse donnée paul 15.03.2014 - 14:33
la source
-2

Ce problème semble être très spécifique à Ubuntu. En tant qu'utilisateur non-ubuntu, je ne comprenais même pas pourquoi sudo serait un cas particulier (beaucoup de distributions ne l'installent pas par défaut).

Vous n'avez pas besoin de sudo du tout. Ce n'est qu'un raccourci paresseux qui vous permet d'exécuter une commande root sans vous connecter en tant que root. Cependant, si vous devez faire plus qu'une commande, il est tout simplement affreux de tout préfixer avec sudo. Sans compter que l'utilisation de sudo rend les utilisateurs ignorants du fonctionnement des autorisations et du compte root. Il est beaucoup plus logique de vous connecter en tant que root, d’administrer le système et de vous déconnecter. Que faites-vous avec su si vous êtes déjà connecté en tant qu'utilisateur régulier. Ou vous pouvez vous connecter directement en tant que root.

Bien sûr, vous devez avoir root password défini, ce qui est une configuration raisonnable, sinon vous avez un système semblable à Windows où il y a des actions que personne ne peut effectuer et vous êtes vraiment bloqué si sudo n'est pas disponible (cela nécessite de travailler /etc/ , de définir $PATH et d'autres choses montées - ce que vous pourriez ne pas avoir si quelque chose ne va pas au début du démarrage).

    
réponse donnée orion 17.03.2014 - 08:51
la source

Lire d'autres questions sur les étiquettes