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

25

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, dass der einzige Grund, warum ich unter ifconfigDebian ohne Superkräfte nicht laufen kann , darin besteht, dass er mir nicht im Weg steht. Wenn ich es benutze /sbin/ifconfig, funktioniert es.

Gibt es einen Grund , warum ich sollte nicht hinzufügen /usr/local/sbin:/usr/sbin:/sbinzu meinen Weg auf 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
Chaos
quelle
Gute Frage - positiv bewertet :) Übrigens, hier ist eine Geschichte über Debians Entscheidung, /usr/local/sbin:/usr/sbin:/sbinden Standard-Pfad für normale Benutzer nicht anzugeben . Der Ansatz von Ubuntu scheint für alle, mit Ausnahme der erfahrensten Benutzer, benutzerfreundlicher zu sein.
Sampablokuper

Antworten:

27

In der Debian-Richtlinie steht, dass Debian dem File Hierarchy Standard Version 2.3 folgt . Anmerkung Nr. 19 zum Standard lautet:

Zu entscheiden, welche Dinge in "sbin" -Verzeichnissen abgelegt werden, ist einfach: Wenn ein normaler Benutzer (kein Systemadministrator) es jemals direkt ausführen wird, muss es in eines der "bin" -Verzeichnisse gestellt werden. Normale Benutzer sollten keines der sbin-Verzeichnisse in ihrem Pfad ablegen müssen.

Beispielsweise müssen Dateien wie chfn, die Benutzer nur gelegentlich verwenden, noch 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 Berechtigung zum Lesen und Ausführen für alles in / sbin haben, außer möglicherweise für bestimmte setuid- und setgid-Programme. Die Aufteilung zwischen / bin und / sbin wurde nicht aus Sicherheitsgründen oder um Benutzer daran zu hindern, das Betriebssystem zu sehen, sondern um eine gute Aufteilung zwischen Binärdateien, die jeder verwendet, und solchen, die hauptsächlich für Verwaltungsaufgaben verwendet werden, zu gewährleisten. Es gibt keinen inhärenten Sicherheitsvorteil, wenn / sbin für Benutzer deaktiviert wird .


Kurze Antwort:

Gibt es einen Grund, warum ich /usr/local/sbin:/usr/sbin:/sbinmeinen Debian-Pfad nicht erweitern sollte ?

Wie die Notiz sagt, gibt es keinen Grund, warum Sie das nicht tun sollten. Da Sie der einzige Benutzer des Systems sind und die Binärdateien in den sbinVerzeichnissen benötigen , können Sie sie jederzeit zu Ihren hinzufügen $PATH. Lassen Sie sich an dieser Stelle von mir zu einer hervorragenden Antwort führen, wie das richtig gemacht werden kann.

Chaos
quelle
4

Der einzige Grund, warum Sie sie nicht hinzufügen sollten, ist, dass die Ausführung von Befehlen durch Tabulatoren langsamer (da mehr Verzeichnisse durchsucht werden) und weniger effektiv ist (da es mit höherer Wahrscheinlichkeit zu falschen Übereinstimmungen mit Befehlen kommt, die für Nicht-Root-Benutzer keinen Sinn machen ).

R ..
quelle