Zauważyłem, że domyślna ścieżka do roota na moim vm i serwerach nie zawiera / usr / local / bin
sudo -s
echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
Podczas gdy normalni użytkownicy na serwerze mają / usr / local / bin
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/sowen/bin
Dlaczego root nie potrzebuje / usr / local na ścieżce?
Gdzie jest zdefiniowana domyślna ścieżka dla użytkownika?
/usr/local/sbin
i/usr/local/bin
na domyślnej ścieżce roota, ale są wyjątki./usr/local/bin
i drugą bez). I z tym/usr/local/bin
, że nie mogłem znaleźć, gdzie to jest ustawione.Odpowiedzi:
Ponieważ nie jest skonfigurowany w odpowiednich plikach startowych powłoki dla roota.
Tradycyjnie
/usr/local
był używany do nieoficjalnego, lokalnie instalowanego oprogramowania (często w celu zastąpienia błędnych / uszkodzonych / ograniczonych „oficjalnych” wersji; przyjaciel żartował, że był to pierwszy krok, gdy pojawiło się nowe słońceGNU > /usr/local
). Ponieważroot
jest wszechmocny, każda pomyłka lub błędne zaprojektowanie uruchomionych programów może być śmiertelne. Jest zrozumiałe, że uruchamianie np. Lokalnej, eksperymentalnej wersjimake
rootowania powinno być traktowane z ostrożnością. Lepiej, żeby poszedł o krok dalej, podając wyraźną ścieżkę.źródło