Linux, sudo env nie ma zmiennej środowiskowej, gdy użytkownik root ma

0

Mam RHEL 7 i chcę ustawić zmienną środowiskową dla sudo.

Uciekłem sudo su aby przełączyć się na użytkownika root i dodać export do tego .bashrc plik. Potem ponownie je załadowałem source.

Teraz, kiedy biegnę env w root tryb ma zmienną środowiskową. Jednak kiedy wychodzę i biegnę sudo env to nie.

Dlaczego tak się dzieje?

Mr.D
źródło
Dlaczego to zrobił Mówi się, żeby po prostu uruchomił env. Nie będzie interaktywnego logowania bash, które uruchomiłoby plik bashrc.
Seth

Odpowiedzi:

1

sudo uruchamia programy we własnym, ograniczonym środowisku (patrz sekcja ŚRODOWISKO podręcznika) man sudo ). Nie korzysta w sposób dorozumiany bash uruchamiać programy, więc ~/.bashrc nie jest uruchamiany, ale możesz go wywołać bezpośrednio:

sudo bash --rcfile=~root/.bashrc -c ProgramAndParameters

Możesz ustawić zmienną środowiskową w ciągu uruchamiania:

sudo variable=value ProgramAndParameters

Możesz użyć aliasu lub funkcji, aby wykonać jedną z nich domyślnie.

Alternatywnie możesz dodać plik środowiska do /etc/sudoers (widzieć man sudoers po więcej informacji).

AFH
źródło