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.