Linux: "command not found" bei der Verwendung von superuser?
Hi,
ich habe gerade etwas seltsames bemerkt. Ich betreibe über meinen Raspberry Pi einen kleinen Minecraft Server für mich und meine Freunde. Jetzt wollten wir die nächste Welt starten und ich habe genau wie bei der alten Welt einen Serverordner unter "/home/Benutzername" erstellt. Dort habe ich dann mit "sudo wget [Link]" die Vanilla Server Datei heruntergeladen und mit "./server.jar" gestartet. Daraufhin erhielt ich die Fehlermeldung "permission denied". Ich habe es also mit "sudo ./server.jar" versucht, erhielt hier jedoch die Meldung "command not found". Ich habe noch den alten Server Ordner und dort hat alles einwandfrei funktioniert und es funktioniert dort auch immer noch reibungslos. Ich habe also einfach den alten Weltordner vom alten Server gelöscht und eine neue Welt generieren lassen. So ist das Problem zwar jetzt gelöst, allerdings bin ich jetzt an diese eine Serverdatei gebunden und kann diese natürlich in Zukunft aufgrund dieses Problems nicht updaten. Dieser Fehler ergibt für mich so wenig Sinn, dass ich sogar einen Bug in Linux vermute. Könnt ihr mir da helfen?
Danke sehr.
3 Antworten
Was passiert denn, wenn Du das har wie angedacht startest:
java -jar server.jar
Wenn Du die Datei mit
./server.jar
ausführen willst, dann müssen mehrere Dinge erfüllt sein, dazu zählen: Korrekt eingerichtetes binfmt_misc, Ausführrechte für das jar selbst sowie ggf. eine korrekte Umgebung, damit die Java-VM auch gefunden wird.
Command not found kann bedeuten, dass so ein Programm wirklich nicht vorhandenen ist. Wahrscheinlicher aber ist, es steht nicht im suchpfad, also der Pfad nicht in der Variablen PATH.
Permission denide bedeutet, das exec- Flag ist nicht gesetzt.
chmod +x Dateiname sollte das beseitigen.
Für eine neuen User fehlt auch der Eintrag in der Datei /etc/sudoers.
Wenn du bei ./server.jar so einen Fehler bekommst, ist das u.U. auch wieder ein fehlender Eintrag in PAHT oder aber innerhalb findet er ein Programm nicht. Da es aber schon mit andern Sachen ging, tippe ich auf die Variable PATH.
Anstatt da einfach so als root alle Sicherheitsbarrieren zu ignorieren solltest Du erst mal versuchen die Berechtigung zu erlangen.
Das geht mit den befehlen
chown und chgrp.
Dazu einfach vor das Verzeichnis gehen und dann;
sudo chown -R username verzeichnisname
sudo chgrp -R users verzeichnisname
eingeben. Dann gehört das Verzeichnis und alles darin (durch -R) Dir und der Gruppe.
Als Root sind natürlich alle "Abkürzungen" in der Bash gesperrt, denn die sind besonders gefährlich.
P.S.:
Bei Downloads und Umwegen über FAT32 und NTFS Dateisysteme gehen alle Zugehörigkeiten verloren. Das ist normal, dass man die dann wiederherstellen muss. Am besten ist natürlich Zip/Rar/7z, da können alle Attribute erhalten bleiben.