Na mém virtuálním počítači s fedorou mám při spuštění s uživatelským účtem /usr/local/bin
v mé cestě:
[[email protected] ~]$ env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin
A podobně při spuštění su
:
[[email protected] ~]$ su -
Password:
[[email protected] justin]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin
Nicméně při spuštění přes sudo
, tento adresář není v cestě:
[[email protected] justin]# exit
[[email protected] ~]$ sudo bash
[[email protected] ~]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin
Proč by se cesta při spuštění přes sudo
lišila ?
Přijatá odpověď:
Podívejte se na /etc/sudoers
. Výchozí soubor ve Fedoře (stejně jako v RHEL a také Ubuntu a podobně) obsahuje tento řádek:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Což zajišťuje, že vaše cesta je čistá při spouštění binárních souborů pod sudo. To pomáhá chránit před některými obavami uvedenými v této otázce. Je to také výhodné, pokud nemáte /sbin
a /usr/sbin
svou vlastní cestou.