Comando Bash Sudo no encontrado


33

He configurado una máquina virtual usando Linux Redmine llave en mano y estoy tratando de SSH en el servidor para instalar algunos elementos más.

No parece estar reconociendo el comando sudo. Cada vez que intento sudo algo recibo un error que dice:

 -bash: sudo: command not found

Leí en otro lugar para escribir 'whereis sudo' y el resultado fue:

 sudo:

Respuestas:


20

Se ve desde http://www.turnkeylinux.org/redmine como Redmine, a diferencia de Ubuntu, no usa sudo por defecto. ¿En qué nombre de usuario estás usando SSH? Si es así root, entonces no necesita usar sudo, ya que todo lo que hace cuando SSHed en el sistema Redmine se hace como root. Si se trata de algo más, adminpuede intentar usar el sucomando para obtener un rootshell en el que ejecutar comandos como root.


Qué hacer cuando el script tiene comandos sudo. Me pasa con mkusb. Es mejor instalar sudo para su conveniencia futura.
Love Grover

40

Tal vez no está instalado? Abra su administrador de paquetes e instale el paquete sudo .


2
No fue instalado! Gracias. Soy bastante nuevo en Linux y asumí que estaba en todas las instalaciones. ¿Solo necesito el paquete sudo o sudo-ldap también?

2
No necesita el paquete sudo-ldap. Sudo funciona bien en mi computadora y no tengo instalado sudo-ldap.
Azendale

6

Primero inicie sesión en su cuenta raíz. Luego

$ apt-get install sudo

Agregue su usuario existente al grupo sudo

$ sudo adduser <user> sudo

Luego debe iniciar sesión como <user>, y el sudocomando debe estar allí.


5

intenta usar la ruta completa

/usr/bin/sudo

si ese comando funciona, entonces incluya / usr / bin / en su variable de ruta PATH en ~ / .bashrc

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

con suerte funciona ..


44
Es muy poco probable que ese sea el problema; /usr/bines casi seguro que estará en su ruta predeterminada. El problema, como lo indican otras respuestas y comentarios, es que el sudocomando no estaba instalado en absoluto.
Keith Thompson

2

El error ocurre porque el binario al que está intentando llamar desde la línea de comandos es solo una parte de la variable PATH del usuario actual, pero no una parte de la PATH del usuario root.

Puede verificar esto localizando la ruta del binario al que está intentando acceder. En mi caso, estaba tratando de llamar "bettercap-ng". Entonces corrí

$ which bettercap-ng

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

Verifiqué si esta ubicación es parte de la RUTA de mi usuario raíz.

$ sudo env | grep ^PATH

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

Entonces sudo no puede encontrar el binario que estoy tratando de llamar desde la línea de comandos. Por lo tanto, devuelve el comando de error no encontrado.

Puede indicarle a sudo que use la RUTA del usuario actual cuando llame a un binario como se muestra a continuación.

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

De hecho, uno puede hacer un alias:

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

También es posible nombrar el alias en sí mismo sudo, reemplazando el sudo original.

Consulte este video para obtener una solución paso a paso.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.