Ik heb een VM opgezet met gebruiksklare linux redmine en ik probeer SSH in de server te plaatsen om wat meer items te installeren.
Het lijkt de opdracht sudo niet te herkennen. Elke keer dat ik iets probeer te sudo, krijg ik een foutmelding:
-bash: sudo: command not found
Ik las ergens anders om “whereis sudo” te typen en de uitvoer was:
sudo:
Antwoord
Het lijkt van http://www.turnkeylinux.org/redmine zoals Redmine, in tegenstelling tot Ubuntu, gebruikt sudo niet standaard. Welke gebruikersnaam gebruik je voor SSH? Als het “s root
is, dan hoeft u sudo
niet te gebruiken, omdat alles wat u doet wanneer SSHed in het Redmine-systeem is gedaan als root
. Als het iets anders is, zoals admin
, dan kunt u proberen het su
commando te gebruiken om een shell waarin commandos kunnen worden uitgevoerd als root
.
Reacties
Antwoord
Misschien is het niet “niet geïnstalleerd? Open uw pakketbeheerder en installeer het sudo pakket.
Opmerkingen
- Het was niet ' niet geïnstalleerd! Bedankt. Ik ' ben vrij nieuw voor Linux en nam gewoon aan dat het op alle installaties zat. Heb ik alleen het sudo-pakket of sudo-ldap nodig?
- Je hebt ' niet het sudo-ldap-pakket nodig. Sudo werkt prima op mijn computer en ik heb ' niet sudo-ldap geïnstalleerd.
Antwoord
Log eerst in op uw root-account.
$ apt-get install sudo
Voeg uw bestaande gebruiker toe aan de groep sudo
$ sudo adduser <user> sudo
Je moet dan inloggen als <user>
, en het sudo
commando zou daar moeten zijn.
Antwoord
probeer het volledige pad te gebruiken
/usr/bin/sudo
als dat commando werkt, neem dan / usr / bin / op in je env-variabele PATH in ~ / .bashrc
echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc
hopelijk werkt het ..
Opmerkingen
- Dat ' is zeer waarschijnlijk niet het probleem;
/usr/bin
zal vrijwel zeker in uw standaardpad staan. Het probleem, zoals aangegeven door andere antwoorden en opmerkingen, is dat hetsudo
commando helemaal niet ' was geïnstalleerd.
Answer
De fout treedt op omdat het binaire bestand dat u probeert aan te roepen vanaf de opdrachtregel slechts een deel is van het PAD van de huidige gebruiker variabele, maar maakt geen deel uit van het PATH van de rootgebruiker.
U kunt dit verifiëren door het pad te lokaliseren van het binaire bestand dat u probeert te openen. In mijn geval probeerde ik “bettercap-ng” te bellen. Dus ik rende,
$ which bettercap-ng
output: /home/user/work/bin/bettercap
Ik gecontroleerd of deze locatie deel uitmaakt van het PATH van mijn rootgebruiker.
$ sudo env | grep ^PATH
output: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Dus sudo kan het binaire bestand dat ik probeer aan te roepen niet vinden vanaf de commandoregel. Daarom retourneert het foutcommando niet gevonden.
Je kunt sudo opdracht geven om de huidige gebruiker te gebruiken “s PATH bij het aanroepen van een binair bestand zoals hieronder.
$ sudo -E env "PATH=$PATH" [command] [arguments]
In feite kan men er een alias van maken:
$ alias mysudo="sudo -E env "PATH=$PATH""
Het is ook mogelijk om de alias zelf sudo te noemen, ter vervanging van de originele sudo.
Raadpleeg naar deze video voor een stapsgewijze oplossing
sudo
soms een betere optie is