Linux findet /usr/sbin/ nicht?

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

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

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:

  1. Du loggst dich als root ein über den Befehl su
  2. 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.

/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

guenterhalt  04.08.2019, 19:28

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.

1

ich hab das problem gelöst einfach kurz find /usr/sbin eingegeben und schon gings

Linuxhase  04.08.2019, 10:59

Damit wird doch nur der Pfad auf stdout Ausgegeben falls existent.

  • Wie soll das dabei helfen ein Programm auszuführen für welches man keine Berechtigung hat?
  • Klar könntest Du den Programmnamen mitsamt dem Pfad angeben, aber die Rückmeldung des Systems wäre die gleiche:
fdisk -l
fdisk: /dev/sdb kann nicht geöffnet werden: Keine Berechtigung
/usr/bin/fdisk -l
fdisk: /dev/sdb kann nicht geöffnet werden: Keine Berechtigung

weil das Programm, ebenso wie useradd und adduser zu root gehört:

ls -l /usr/bin/useradd
-rwxr-xr-x 1 root root 145416 9. Apr 16:22 /usr/bin/useradd

Linuxhase

0
timluke03 
Fragesteller
 04.08.2019, 15:27
@Linuxhase

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

0
guenterhalt  04.08.2019, 19:35
@Linuxhase

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.

0