Comando Bash Sudo não encontrado

33

Eu configurei uma VM usando turnkey linux redmine e estou tentando fazer o SSH no servidor para instalar mais alguns itens.

Não parece reconhecer o comando sudo. Sempre que tento sudo algo, recebo um erro dizendo:

 -bash: sudo: command not found

Eu li em outro lugar para digitar 'whereis sudo' e a saída foi:

 sudo:
Rui F Ribeiro
fonte

Respostas:

20

Parece em http://www.turnkeylinux.org/redmine como o Redmine, ao contrário do Ubuntu, não usa o sudo por padrão. Em que nome de usuário você está usando o SSH? Se for root, não será necessário usá-lo sudo, pois tudo o que você faz quando faz o SSH no sistema Redmine é feito como root. Se for algo mais, como admin, então você pode tentar usar o sucomando para obter um rootshell no qual executar comandos como root.

Eliah Kagan
fonte
O que fazer quando o script possui comandos sudo. Acontece comigo com mkusb. É melhor instalar o sudo para conveniência futura.
Love Grover
40

Talvez não esteja instalado? Abra seu gerenciador de pacotes e instale o pacote sudo .


fonte
2
Não foi instalado! Obrigado. Eu sou muito novo no Linux e apenas assumi que estava em todas as instalações. Eu só preciso do pacote sudo ou sudo-ldap também?
2
Você não precisa do pacote sudo-ldap. O Sudo funciona bem no meu computador e não tenho o sudo-ldap instalado.
Azendale 29/10
6

Primeiro, faça login na sua conta root. Então

$ apt-get install sudo

Adicione seu usuário existente ao grupo sudo

$ sudo adduser <user> sudo

Você deve fazer login como <user>e o sudocomando deve estar lá.

Gayan Weerakutti
fonte
5

tente usar o caminho completo

/usr/bin/sudo

se esse comando funcionar, inclua / usr / bin / na sua variável env PATH em ~ / .bashrc

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

espero que funcione ..


fonte
4
É muito improvável que seja o problema; /usr/bincertamente estará no seu caminho padrão. O problema, conforme indicado por outras respostas e comentários, é que o sudocomando não foi instalado.
Keith Thompson
2

O erro ocorre porque o binário que você está tentando chamar da linha de comando é apenas parte da variável PATH do usuário atual, mas não faz parte do PATH do usuário raiz.

Você pode verificar isso localizando o caminho do binário que você está tentando acessar. No meu caso, eu estava tentando chamar "bettercap-ng". Então eu corri,

$ which bettercap-ng

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

Eu verifiquei se esse local faz parte do PATH do meu usuário root.

$ sudo env | grep ^PATH

saída: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Portanto, o sudo não consegue encontrar o binário que estou tentando chamar na linha de comando. Portanto, retorna o comando de erro não encontrado.

Você pode direcionar o sudo para usar o PATH do usuário atual ao chamar um binário como abaixo.

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

De fato, pode-se criar um apelido:

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

Também é possível nomear o próprio apelido sudo, substituindo o sudo original.

Consulte este vídeo para obter uma solução passo a passo

Ornitorrinco Anônimo
fonte