Commande Bash Sudo introuvable

33

J'ai configuré une machine virtuelle à l'aide de linux Redmine, clé en main, et j'essaie d'utiliser SSH sur le serveur pour installer d'autres éléments.

Il ne semble pas reconnaître la commande sudo. Chaque fois que j'essaie de faire quelque chose, je reçois une erreur en disant:

 -bash: sudo: command not found

J'ai lu ailleurs pour taper 'whereis sudo' et le résultat était:

 sudo:
Rui F Ribeiro
la source

Réponses:

20

Il semble depuis http://www.turnkeylinux.org/redmine que Redmine, contrairement à Ubuntu, n’utilise pas sudo par défaut. Quel nom d'utilisateur utilisez-vous pour SSH? Si c'est le cas root, vous n'avez pas besoin de l'utiliser sudo, car tout ce que vous faites lorsque SSHed dans le système Redmine est effectué comme root. Si c'est quelque chose d'autre, adminvous pouvez essayer d'utiliser la sucommande pour obtenir un rootshell dans lequel exécuter les commandes root.

Eliah Kagan
la source
Que faire lorsque le script a des commandes sudo. Ça m'arrive avec mkusb. Il vaut mieux installer sudo pour plus de commodité.
Love Grover
40

Peut-être qu'il n'est pas installé? Ouvrez votre gestionnaire de paquets et installez le paquet sudo .


la source
2
Ce n'était pas installé! Merci. Je suis assez nouveau sur Linux et je suppose que c'était sur toutes les installations. Ai-je simplement besoin du paquet sudo ou de sudo-ldap?
2
Vous n'avez pas besoin du paquet sudo-ldap. Sudo fonctionne bien sur mon ordinateur et je n'ai pas installé sudo-ldap.
Azendale
6

Commencez par vous connecter à votre compte root. ensuite

$ apt-get install sudo

Ajouter votre utilisateur existant au groupe sudo

$ sudo adduser <user> sudo

Vous devriez alors vous connecter en tant que <user>, et la sudocommande devrait être là.

Gayan Weerakutti
la source
5

essayez d'utiliser le chemin complet

/usr/bin/sudo

si cette commande marche, incluez / usr / bin / dans votre variable env PATH dans ~ / .bashrc

echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc

j'espère que ça fonctionne ..


la source
4
C'est très peu probable que ce soit le problème. /usr/binva presque certainement être dans votre chemin par défaut. Le problème, comme indiqué par d'autres réponses et commentaires, est que la sudocommande n'était pas installée du tout.
Keith Thompson
2

L'erreur se produit car le binaire que vous essayez d'appeler à partir de la ligne de commande ne constitue qu'une partie de la variable PATH de l'utilisateur actuel, mais pas une partie de PATH de l'utilisateur root.

Vous pouvez le vérifier en localisant le chemin du fichier binaire auquel vous tentez d'accéder. Dans mon cas, j'essayais d'appeler "bettercap-ng". Alors j'ai couru,

$ which bettercap-ng

output: /home/user/work/bin/bettercap

J'ai vérifié si cet emplacement faisait partie de PATH de mon utilisateur root.

$ sudo env | grep ^PATH

sortie: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Donc, sudo ne peut pas trouver le binaire que j'essaie d'appeler depuis la ligne de commande. Par conséquent, renvoie la commande d'erreur non trouvée.

Vous pouvez demander à sudo d'utiliser le PATH de l'utilisateur actuel pour appeler un binaire comme ci-dessous.

$ sudo -E env "PATH=$PATH" [command] [arguments]

En fait, on peut en faire un alias:

$ alias mysudo='sudo -E env "PATH=$PATH"'

Il est également possible de nommer l'alias lui-même sudo, en remplacement du sudo d'origine.

S'il vous plaît se référer à cette vidéo pour la solution étape par étape

Ornithorynque anonyme
la source