Linux findet /usr/sbin/ nicht?
Hey leute ich wollte mir nen MC server auf meinen linux servers basteln
nun habe ich das problem dass ich in der shell dazu adduser benutzen will und dieser befehl in /usr/sbin liegt
im PATH ist dieser pfad nicht enthalten ich kann ihn aber auch weder als root noch als normaler user hinzufügen. der pfad existiert natürlich trotzdem und das manual auch die befehlsdatei ist ebenfalls vorhanden.
wenn ich versuche den pfad in PATH einzufügen mit PATH=$PATH:/usr/sbin funktioniert das zwar aber er gibt wenn ich path anzeigen lasse aus Datei oder verzeichnis nicht gefunden
Hilfe
5 Antworten
Hallo
Hey leute ich wollte mir nen MC server auf meinen linux servers basteln
Basteln sollte bei einem öffentlich erreichbaren Server keine Option sein, weil es absolut keinen professionellen Eindruck vermittelt. Ein Server ist keine Bastelbude und kein Spielzeug.
nun habe ich das problem dass ich in der shell dazu adduser benutzen will und dieser befehl in /usr/sbin liegt
Mal davon abgesehen das kein User außer root das Recht hat Benutzer anlegen zu dürfen, ist useradd das richtige Werkzeug dafür. Wenn man dennoch administrative Aufgaben an andere Benutzer abgeben will, dann macht man das zum Beispiel mit der entsprechenden Konfiguration von sudo. Dort kann man explizite Aufgaben an ausgewählte Benutzer übergeben (Nicht den Mist den Ubuntu mit all:all verzapft).
im PATH ist dieser pfad nicht enthalten ich kann ihn aber auch weder als root noch als normaler user hinzufügen. der pfad existiert natürlich trotzdem
Nichtmal als root, dann machst Du was falsch, denn root darf alles, nicht wie der Administrator von Windows.
aber er gibt wenn ich path anzeigen lasse aus Datei oder verzeichnis nicht gefunden
Den Pfad zu editieren ändert sber nichts daran das die Berechtigung dieses auszuführen nicht an den normalen User vergeben ist.
Linuxhase
Du kannst die Umgebungsvariable über diesen Befehl ausgeben:
echo $PATH
Die Verzeichnisse /sbin und /usr/sbin stehen aber nur dem Superuser zur Verfügung. Dafür steht das es auch im Verzeichnisnamen: sbin = super user binaries.
Es gibt also zwei Möglichkeiten:
- Du loggst dich als root ein über den Befehl su
- Du erlangst root-Rechte über den Befehl sudo
Anschließend solltest du auf die Verzeichnisse zugreifen können. Wenn diese weiterhin fehlen, musst du die Variable anpassen:
export PATH="$PATH:$HOME/bin"
Und zur dauerhaften Anpassung musst du es in die Datei ~/.profile eintragen. Für globale Anpassungen erstellst du eine Datei in /etc/profile.d.
Die Antwort bezieht sich auf POSIX-Shells. Ich gaube bei der csh und tcsh ist das anders.
ich hab das problem gelöst einfach kurz find /usr/sbin eingegeben und schon gings
Also ich weiss nicht wie das helfen soll jedoch hats geklappt... habe aber nun ein anderes problem ich mache darüber ne neue frage auf
was soll den geklappt haben?
Vielleicht hast du damit useradd gefunden und auch noch, dass jeder diesen Befehl ausführen darf ( Rechte -rwxr-xr-x ). Nur darf man nicht vergessen, dass useradd selbst prüft, ob der der den Befehl startet, wirklich die IUD 0 hat.
/sbin und /usr/sbin liegen üblicherweise nur bei UID 0 in $PATH.
Was das ändern des Pfades betrifft - Bist DU mit den Grundlagen der benutzten Shell vertraut?
Man kann auch eine symbolische Verknüpfung nach /usr/bin/ legen:
Dazu mit Root-Rechten im Terminal ln -s /usr/sbin/adduser /usr/bin eingeben
adduser ist eine Erfindung von Ubuntu. Richtige unixoide Systeme verwenden useradd.
Wer sich auch nur ein klein wenig mit Linux auskennt, benötigt weder eine Pfad, der auf so ein Tool verweist, noch das Tool useradd, der macht das mit "zu Fuß" mit 3,4 ganz einfachen Befehlen.
Damit wird doch nur der Pfad auf stdout Ausgegeben falls existent.
weil das Programm, ebenso wie useradd und adduser zu root gehört:
Linuxhase