Porovnejte Debian (vlevo) a Ubuntu (vpravo):
$ ifconfig $ ifconfig bash: ifconfig: command not found eth0 Link encap ... $ which ifconfig $ which ifconfig $ /sbin/ifconfig
Pak jako superuser:
# ifconfig # ifconfig eth0 Link encap ... eth0 Link encap ... # which ifconfig # which ifconfig /sbin/ifconfig /sbin/ifconfig
Dále:
# ls -l /sbin/ifconfig # ls -l /sbin/ifconfig -rwxr-xr-x 1 root root 68360 ... -rwxr-xr-x 1 root root 68040 ...
Zdá se mi, že jediným důvodem, proč nelze spustit ifconfig
bez supervelmocí v Debianu je to, že mi není v cestě. Když používám /sbin/ifconfig
, funguje to.
Existuje nějaký důvod, proč bych ne přidat /usr/local/sbin:/usr/sbin:/sbin
na moji cestu v Debianu? Toto je osobní počítač, jsem jediný člověk.
Použité verze (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
Komentáře
- Skvělá otázka – hlasováno 🙂 Mimochodem, zde ' nějaká historie o rozhodnutí Debianu ' nerozhodnout ut
/usr/local/sbin:/usr/sbin:/sbin
ve výchozí PATH pro běžné uživatele. Přístup Ubuntu ' se zdá být uživatelsky přívětivější pro všechny kromě těch nejnáročnějších uživatelů.
Odpověď
V zásadách Debianu je napsáno, že Debian dodržuje hierarchii souborů Standardní verze 2.3. Poznámka č. 19 standardu říká:
Rozhodování o tom, do čeho jde " sbin " adresáře jsou jednoduché: pokud jej běžný uživatel (nikoli správce systému) kdykoli spustí přímo, musí být umístěn v jednom adresářů " bin ". Obyčejní uživatelé by neměli na svoji cestu umisťovat žádný z adresářů sbin.
Například soubory jako chfn, které uživatelé používají jen občas, musí být stále umístěny v / usr / bin. ping, i když je to absolutně nezbytné pro root (obnovení a diagnostika v síti) je často používáno uživateli a musí z toho důvodu žít v / bin.
Doporučujeme uživatelům číst a spouštět oprávnění ke všem v / sbin, snad kromě určitých programů setuid a setgid. Rozdělení mezi / bin a / sbin nebylo vytvořeno z bezpečnostních důvodů nebo proto, aby uživatelé nemohli vidět operační systém, ale aby poskytlo dobrý oddíl mezi binárními soubory, které každý používá, a těmi, které se primárně používají pro administrativní úlohy. Vytváření / sbin omezení pro uživatele nemá žádnou inherentní bezpečnostní výhodu.
Krátká odpověď:
Existuje nějaký důvod, proč bych neměl přidávat
/usr/local/sbin:/usr/sbin:/sbin
na mou cestu v Debianu?
Jak uvádí poznámka, není důvod, proč byste to neměli dělat. Protože jste jediný, kdo používá systém, a potřebujete binární soubory v adresářích sbin
, můžete je přidat do svých $PATH
. V tomto okamžiku vás provedu vynikající odpovědí , jak to udělat správně.
Odpovědět
Jediným důvodem, proč je nepřidávat, je to, že umožňuje provádění příkazů na kartách pomaleji (protože se prohledává více adresářů) a méně efektivně (protože je větší pravděpodobnost, že z příkazů budou falešné shody) nedává smysl používat jiný uživatel než root).