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?


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).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.