Bash Sudo-kommandoen ble ikke funnet

Jeg har satt opp en virtuell maskin ved hjelp av nøkkelferdige Linux redmine, og jeg prøver å SSH inn i serveren for å installere noen flere elementer.

Det ser ikke ut til å gjenkjenne sudo-kommandoen. Hver gang jeg prøver å sudo noe, får jeg en feil med å si:

 -bash: sudo: command not found 

Jeg leste et annet sted for å skrive «whereis sudo» og utgangen var:

 sudo: 

Svar

Det ser ut fra http://www.turnkeylinux.org/redmine som Redmine, i motsetning til Ubuntu, bruker ikke sudo som standard. Hvilket brukernavn bruker du til SSH? Hvis det «s root, trenger du ikke å bruke sudo, som alt du gjør når SSHed i Redmine-systemet er gjort som root. Hvis det er noe annet, som admin, kan du prøve å bruke kommandoen su for å få en root skall for å kjøre kommandoer som root.

Kommentarer

Svar

Kanskje det ikke er installert? Åpne pakkeadministratoren din, og installer sudo -pakken.

Kommentarer

  • Den var ikke ' t installert! Takk. Jeg ' er ganske ny på Linux og antok bare at det var på alle installasjoner. Trenger jeg bare sudo-pakken eller sudo-ldap også?
  • Du trenger ikke ' ikke trenger sudo-ldap-pakken. Sudo fungerer bra på datamaskinen min, og jeg har ikke ' sudo-ldap er ikke installert.

Svar

Først logger du på root-kontoen din. Deretter

$ apt-get install sudo 

Legg til din eksisterende bruker i gruppen sudo

$ sudo adduser <user> sudo 

Du bør da logge inn som <user>, og sudo -kommandoen skal være der.

Svar

prøv å bruke full sti

/usr/bin/sudo 

hvis det kommandoen fungerer, må du inkludere / usr / bin / i env-variabelen PATH i ~ / .bashrc

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

forhåpentligvis fungerer ..

Kommentarer

  • At ' er svært usannsynlig å være problemet; /usr/bin vil nesten helt sikkert være i din standardbane. Problemet, som angitt av andre svar og kommentarer, er at sudo -kommandoen ikke var ' t i det hele tatt.

Svar

Feilen oppstår fordi binærfilen du prøver å ringe fra kommandolinjen bare er en del av den nåværende brukerens PATH variabel, men ikke en del av rotbrukerens PATH.

Du kan bekrefte dette ved å finne stien til binærfilen du prøver å få tilgang til. I mitt tilfelle prøvde jeg å kalle «bettercap-ng». Så jeg løp,

$ which bettercap-ng

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

I sjekket om denne plasseringen er en del av rotbrukerens PATH.

$ sudo env | grep ^PATH

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

Så sudo finner ikke binæren som jeg prøver å ringe fra kommandolinjen. returnerer dermed feilkommandoen som ikke ble funnet.

Du kan lede sudo til å bruke den nåværende brukeren «s PATH når du ringer til en binær som nedenfor.

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

Man kan faktisk lage et alias ut av det:

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

Det er også mulig å navngi aliaset selv sudo, og erstatte den opprinnelige sudo.

Se til denne videoen for trinnvis løsning

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *