Czy istnieje powód, dla którego nie chciałbym dodawać / usr / local / sbin, / usr / sbin, / sbin do mojej ścieżki w Debianie?

25

Porównaj Debian (po lewej) i Ubuntu (po prawej):

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

Następnie jako administrator:

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

Ponadto:

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

Wydaje mi się, że jedynym powodem, dla którego nie mogę działać ifconfigbez supermocy na Debianie, jest to, że nie jest to na mojej drodze. Kiedy używam, /sbin/ifconfigto działa.

Czy jest jakiś powód, dla którego nie powinienem dodawać /usr/local/sbin:/usr/sbin:/sbinmojej ścieżki do Debiana? To jest komputer osobisty, jestem jedynym ludzkim użytkownikiem.


Użyte wersje ( 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
źródło
Świetne pytanie - wzięte pod uwagę :) Nawiasem mówiąc, oto historia dotycząca decyzji Debiana o niewprowadzaniu /usr/local/sbin:/usr/sbin:/sbindomyślnej ścieżki dla zwykłych użytkowników. Podejście Ubuntu wydaje się bardziej przyjazne dla wszystkich oprócz najbardziej doświadczonych użytkowników.
sampablokuper

Odpowiedzi:

27

W Polityce Debiana napisano, że Debian przestrzega Standardu Hierarchii Plików w wersji 2.3. Uwaga nr 19 do normy mówi:

Decyzja o tym, co należy znaleźć w katalogach „sbin” jest prosta: jeśli normalny (nie administrator systemu) użytkownik kiedykolwiek uruchomi go bezpośrednio, to należy go umieścić w jednym z katalogów „bin”. Zwykli użytkownicy nie powinni umieszczać żadnych katalogów sbin na swojej ścieżce.

Na przykład pliki takie jak chfn, z których użytkownicy korzystają tylko czasami, muszą nadal znajdować się w / usr / bin. ping, chociaż jest to absolutnie konieczne do rootowania (odzyskiwanie i diagnostyka sieci) jest często używane przez użytkowników i z tego powodu musi znajdować się w katalogu / bin.

Zalecamy, aby użytkownicy czytali i wykonywali uprawnienia do wszystkiego w / sbin, z wyjątkiem, być może, niektórych programów setuid i setgid. Podział między / bin i / sbin nie został utworzony ze względów bezpieczeństwa lub w celu uniemożliwienia użytkownikom zobaczenia systemu operacyjnego, ale w celu zapewnienia dobrej partycji między plikami binarnymi, z których wszyscy korzystają, a tymi, które są głównie używane do zadań administracyjnych. Wprowadzanie limitów / sbin dla użytkowników nie wiąże się z żadną korzyścią bezpieczeństwa .


Krótka odpowiedź:

Czy jest jakiś powód, dla którego nie powinienem dodawać /usr/local/sbin:/usr/sbin:/sbinmojej ścieżki do Debiana?

Jak zauważa notatka, nie ma powodu, dla którego miałbyś tego nie robić. Ponieważ jako jedyny korzystasz z systemu i potrzebujesz plików binarnych w sbinkatalogach, możesz dodać je do swojego $PATH. W tym miejscu poprowadzę Cię do doskonałej odpowiedzi, jak to zrobić poprawnie.

chaos
źródło
4

Jedynym powodem, dla którego nie należy ich dodawać, jest spowolnienie uzupełniania poleceń przez tabulatory (ponieważ przeszukanych jest więcej katalogów) i mniej skuteczne (ponieważ istnieje większe prawdopodobieństwo fałszywych dopasowań poleceń, które nie mają sensu dla użytkownika innego niż root ).

R ..
źródło