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 atsudo
-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
sudo
er et bedre alternativ