Debain (buster) su funktioniert nicht richtig, Befehl nicht gefunden

541
James Greenland
  • Zum Beispiel: Ich habe ifconfig installiert
  • Zuerst werde ich mit "su" root
  • Jetzt schreibe ich "ifconfig" und bekomme: "Befehl nicht gefunden".
  • Ich schreibe "sudo ifconfig" und jetzt funktioniert es.

Dies scheint bei vielen Programmen (nicht allen) zu passieren.

Ein anderes Beispiel: apt-get scheint Anwendungen nicht richtig zu installieren, wenn ich nicht dieselbe Methode verwende.

Ich sollte Sudo nicht schreiben müssen, wenn ich bereits root bin.

Warum das? Was kann ich dagegen tun?

0

1 Antwort auf die Frage

3
dsstorefile1

TL, DR: Verwenden Sie su --loginoder sudo.


Debian legt PATHfür normale Benutzer einen anderen Wert fest. In /etc/profilekönnen Sie sehen, dass die Standardeinstellungen /sbinfür root gelten:

if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" fi export PATH 

type ifconfigsagt, das Dienstprogramm /sbin/ifconfigbefindet sich, weshalb normale Benutzer nicht einfach darauf zugreifen können. Wenn Sie suohne Argumente ausführen, bleibt die Umgebung des aufrufenden Benutzers einschließlich der PATHVariablen erhalten. sudoAndererseits bietet es eine frische Umgebung und überschreibt den anrufenden Benutzer PATH.


Der Grund, warum Sie glauben, dass sues sich um eine Fehlfunktion handelt, liegt darin, dass das Zurücksetzen PATHund IFSstandardmäßig das alte Verhalten ist. Buster hat kürzlich auf die util-linuxImplementierung umgestellt, die suanders arbeitet. siehe /usr/share/doc/util-linux/NEWS.Debian.gzfür weitere Einzelheiten.

Oder einfach `/ sbin / ifconfig` ohne` sudo` oder `su` GAD3R vor 5 Jahren 1