Aby utworzyć trwałe zmienne środowiskowe, dodaję plik skryptu do katalogu /etc/profile.d, na przykład:
# mój skrypt eksport MY_VAR = zmienna_wartości
Działa to poprawnie dla bieżącego użytkownika:
alex @ alex-64: ~ $ echo $ MY_VAR var_value
Teraz potrzebuję tych samych zmiennych środowiskowych dla użytkownika root, ale skrypt /etc/profile.d nie działa dla użytkownika root:
alex @ alex-64: ~ $ echo $ MY_VAR var_value alex @ alex-64: ~ $ sudo su root @ alex-64: / home / alex # echo $ MY_VAR root @ alex-64: / home / alex #
Jak ustawić te same zmienne dla katalogu głównego?
root
environment-variables
Alex F.
źródło
źródło
sudo
jest bardzo powiązane. (Ale to nie jest duplikat, ponieważ to pytanie dotyczy sposobu dostosowania własnego środowiska roota .)Odpowiedzi:
sudo zwykle nie zachowuje lokalnych zmiennych środowiskowych. W tym celu powinieneś użyć go z
-E
przełącznikiem, tzn.sudo -E su
Zachowa $ MYVAR dla roota.Alternatywnie, aby stworzyć trwałe zmienne, które są naprawdę systemowe, powinieneś je ustawić
/etc/environment
.źródło
FOO=bar
Podobnie jak w przypadku procesu definiowania własnej zmiennej środowiskowej, na przykład poprzez edycję „~ / .bashrc”, można zdefiniować zmienną środowiskową root, edytując „/root/.bashrc”.
źródło
Defaults env_reset
w/etc/sudoers
zresetuje rootPATH
zdefiniowane przez/etc/environment
.Możesz go zmodyfikować,
Defaults !env_reset
aby wyłączyć resetowanie lub dodać:źródło