Gibt es einen Grund, warum ich / usr / local / sbin, / usr / sbin, / sbin nicht zu meinem Pfad auf Debian hinzufügen würde?

Vergleichen Sie Debian (links) und Ubuntu (rechts):

$ ifconfig $ ifconfig bash: ifconfig: command not found eth0 Link encap ... $ which ifconfig $ which ifconfig $ /sbin/ifconfig 

Dann als Superuser:

# ifconfig # ifconfig eth0 Link encap ... eth0 Link encap ... # which ifconfig # which ifconfig /sbin/ifconfig /sbin/ifconfig 

Außerdem:

# ls -l /sbin/ifconfig # ls -l /sbin/ifconfig -rwxr-xr-x 1 root root 68360 ... -rwxr-xr-x 1 root root 68040 ... 

Es scheint mir der einzige Grund zu sein, warum ich ifconfig kann ohne Superkräfte unter Debian nicht ausgeführt werden, da es sich nicht in meinem Pfad befindet. Wenn ich /sbin/ifconfig verwende, funktioniert es.

Gibt es einen Grund, warum ich nicht zu meinem Pfad unter Debian? Dies ist ein Personal Computer, ich bin der einzige menschliche Benutzer.


Verwendete Versionen (uname -a):
Ubuntu:

Linux ubuntu 3.13.0-51-generic #84-Ubuntu SMP Wed Apr 15 12:08:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 

Debian:

Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux 

Kommentare

  • Gute Frage – positiv bewertet 🙂 Übrigens hier ' ist etwas Geschichte über Debians ' Entscheidung, nicht p ut /usr/local/sbin:/usr/sbin:/sbin im Standardpfad für normale Benutzer. Der Ansatz von Ubuntu ' scheint für alle außer den erfahrensten Benutzern benutzerfreundlicher zu sein.

Antwort

In der Debian-Richtlinie ist geschrieben, dass Debian der -Dateihierarchie folgt Standard Version 2.3. Anmerkung Nr. 19 zum Standard lautet:

Entscheiden, welche Dinge in " sbin " Verzeichnisse sind einfach: Wenn ein normaler Benutzer (kein Systemadministrator) sie jemals direkt ausführen wird, muss sie in einem Verzeichnis abgelegt werden der Verzeichnisse " bin ". Normale Benutzer sollten keines der sbin-Verzeichnisse in ihren Pfad einfügen müssen.

Beispielsweise müssen Dateien wie chfn, die Benutzer nur gelegentlich verwenden, weiterhin in / usr / bin abgelegt werden. ping, obwohl es für root unbedingt erforderlich ist (Netzwerkwiederherstellung und -diagnose), wird häufig von Benutzern verwendet und muss aus diesem Grund in / bin leben.

Wir empfehlen, dass Benutzer die Lese- und Ausführungsberechtigung für alles in / haben sbin außer vielleicht bestimmten setuid- und setgid-Programmen. Die Trennung zwischen / bin und / sbin wurde nicht aus Sicherheitsgründen oder um Benutzer daran zu hindern, das Betriebssystem zu sehen, sondern um eine gute Partition zwischen Binärdateien bereitzustellen, die jeder verwendet, und solchen, die hauptsächlich für Verwaltungsaufgaben verwendet werden. Es gibt keinen inhärenten Sicherheitsvorteil, wenn / sbin für Benutzer gesperrt wird.


Kurze Antwort:

Gibt es einen Grund, warum ich zu meinem Pfad unter Debian?

Wie in der Notiz angegeben, gibt es keinen Grund, warum Sie das nicht tun sollten. Da Sie „der einzige sind, der das System verwendet, und die Binärdateien in den Verzeichnissen sbin benötigen, können Sie sie Ihrem $PATH hinzufügen An dieser Stelle möchte ich Sie zu einer ausgezeichneten Antwort führen, wie man das richtig macht.

Antwort

Der einzige Grund, sie nicht hinzuzufügen, besteht darin, dass die Tab-Vervollständigung von Befehlen langsamer (da mehr Verzeichnisse durchsucht werden) und weniger effektiv ist (da es wahrscheinlicher ist, dass falsche Übereinstimmungen mit Befehlen vorliegen) Nicht sinnvoll für Nicht-Root-Benutzer.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.