Jeg har oprettet en VM ved hjælp af nøglefærdig Linux redmine, og jeg prøver at SSH ind på serveren for at installere nogle flere emner.
Det ser ikke ud til at genkende sudo-kommandoen. Hver gang jeg prøver at sudo noget, får jeg en fejl med at sige:
-bash: sudo: command not found
Jeg læste et andet sted for at skrive “whereis sudo” og output var:
sudo:
Svar
Det ser ud fra http://www.turnkeylinux.org/redmine ligesom Redmine bruger i modsætning til Ubuntu ikke sudo som standard. Hvilket brugernavn bruger du til SSH i? Hvis det “s root
, behøver du ikke bruge sudo
, da alt hvad du gør, når SSHed i Redmine-systemet er gjort som root
. Hvis det er noget andet som admin
, kan du prøve at bruge kommandoen su
til at få en root
shell, hvor kommandoer køres som root
.
Kommentarer
Svar
Måske er det ikke installeret? Åbn din pakkehåndtering, og installer sudo -pakken.
Kommentarer
- Det var ikke ' t installeret! Tak. Jeg ' er ret ny på Linux og antog bare, at det var på alle installationer. Har jeg bare brug for sudo-pakken eller sudo-ldap også?
- Du behøver ikke ' behøver ikke sudo-ldap-pakken. Sudo fungerer fint på min computer, og jeg har ikke ' sudo-ldap er ikke installeret.
Svar
Første login til din rodkonto. Derefter
$ apt-get install sudo
Føj din eksisterende bruger til gruppen sudo
$ sudo adduser <user> sudo
Du skal derefter logge ind som <user>
, og kommandoen sudo
skal være der.
Svar
prøv at bruge fuld sti
/usr/bin/sudo
hvis dette kommando fungerer, skal du medtage / usr / bin / i din env-variabel PATH i ~ / .bashrc
echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc
forhåbentlig fungerer ..
Kommentarer
- At ' er meget usandsynligt at være problemet;
/usr/bin
vil næsten helt sikkert være i din standardsti. Problemet, som angivet af andre svar og kommentarer, er, at kommandoensudo
ikke var ' t overhovedet installeret.
Svar
Fejlen opstår, fordi den binære, du prøver at ringe fra kommandolinjen, kun er en del af den aktuelle brugers PATH variabel, men ikke en del af rodbrugerens PATH.
Du kan bekræfte dette ved at finde stien til den binære, du prøver at få adgang til. I mit tilfælde prøvede jeg at kalde “bettercap-ng”. Så jeg løb,
$ which bettercap-ng
output: /home/user/work/bin/bettercap
I kontrolleret, om denne placering er en del af min rodbruger “PATH.
$ sudo env | grep ^PATH
output: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Så sudo kan ikke finde den binære, som jeg prøver at ringe fra kommandolinjen. Returnerer derfor fejlkommandoen ikke fundet.
Du kan lede sudo til at bruge den aktuelle bruger “s PATH når man ringer til en binær som nedenfor.
$ sudo -E env "PATH=$PATH" [command] [arguments]
Man kan faktisk lave et alias ud af det:
$ alias mysudo="sudo -E env "PATH=$PATH""
Det er også muligt at navngive aliaset selv sudo og erstatte den originale sudo.
Se til denne video til trinvis løsning
sudo
er en bedre mulighed