Porównaj Debiana (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 superuser:
# 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 jedyny powód, dla którego nie można uruchomić ifconfig
bez supermocy w Debianie, ponieważ nie ma go na mojej ścieżce. Kiedy używam /sbin/ifconfig
, to działa.
Czy jest jakiś powód, dla którego powinienem nie dodać /usr/local/sbin:/usr/sbin:/sbin
do mojej ścieżki w Debianie? To jest komputer osobisty, jestem jedynym użytkownikiem.
Używane 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
Komentarze
- Świetne pytanie – głosowano za 🙂 Nawiasem mówiąc, tutaj ' to trochę historii o Debianie ' decyzji, by nie p ut
/usr/local/sbin:/usr/sbin:/sbin
w domyślnej PATH dla zwykłych użytkowników. Podejście Ubuntu ' wydaje się bardziej przyjazne dla wszystkich oprócz najbardziej doświadczonych użytkowników.
Odpowiedź
W Polityce Debiana jest napisane, że Debian jest zgodny z Hierarchią plików Standard wersja 2.3. Uwaga nr 19 na temat standardu mówi:
Decydowanie o tym, co będzie składać się na " sbin " katalogi są proste: jeśli zwykły użytkownik (nie administrator systemu) kiedykolwiek uruchomi go bezpośrednio, należy go umieścić w jednym z katalogów " bin ". Zwykli użytkownicy nie powinni musieć umieszczać żadnego z katalogów sbin w swojej ścieżce.
Na przykład pliki takie jak chfn, których użytkownicy używają sporadycznie, muszą nadal znajdować się w / usr / bin. ping, chociaż jest absolutnie niezbędny dla roota (przywracanie i diagnostyka sieci), jest często używany przez użytkowników i z tego powodu musi znajdować się w / bin.
Zalecamy, aby użytkownicy mieli uprawnienia do odczytu i wykonywania 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 aby uniemożliwić użytkownikom przeglądanie systemu operacyjnego, ale aby zapewnić dobrą partycję między plikami binarnymi używanymi przez wszystkich i tymi, które są używane głównie do zadań administracyjnych. Nie ma nieodłącznej korzyści w zakresie bezpieczeństwa polegającej na blokowaniu dostępu do / sbin dla użytkowników .
Krótka odpowiedź:
Czy jest jakiś powód, dla którego nie powinienem dodawać
/usr/local/sbin:/usr/sbin:/sbin
do mojej ścieżki w Debianie?
Jak stwierdza uwaga, nie ma powodu, dla którego nie miałbyś tego robić. Ponieważ „jesteś jedyną osobą korzystającą z systemu i potrzebujesz plików binarnych w katalogach sbin
, możesz je dodać do swojego $PATH
. W tym miejscu poprowadzę Cię do doskonałej odpowiedzi , jak to zrobić poprawnie.
Odpowiedź
Jedynym powodem, dla którego ich nie należy dodawać, jest to, że powoduje to wolniejsze uzupełnianie poleceń za pomocą tabulatorów (ponieważ przeszukiwanych jest więcej katalogów) i mniej efektywne (ponieważ istnieje większe prawdopodobieństwo, że polecenia, które nie ma sensu, aby nie był używany root).