Wydaje sudo
się, że podczas korzystania z sudo -u $user
tego środowiska root nadal jest używane. Jak mogę sudo
korzystać ze środowiska użytkownika? jako specjalną notatkę nie wszyscy użytkownicy, z których będę tego używał, mają powłoki logowania.
19
# whoami => root # sudo -u user whoami => user
sudo -u user
jest analogiczny dosu user
zmiany env w su musisz użyćsu - user
-u
również ignorują grupy ... Próbowałem czegoś z rootem (używając sudo -u down) i zadziałało, najwyraźniej nie zadziałało dla użytkownika. .. więc muszę się upewnić, że uruchamiam polecenia w sposób, który miałby wszystkie ograniczenia i problemy środowiskowe.Odpowiedzi:
Próbować
sudo -i -u $user
źródło
/etc/passwd
:( ale chyba zrobi to ...-E
jest to ta, która chroni środowisko, tzn. Wszystkie zmienne środowiskowe itp. Istnieją, chociaż nadal nie jest ustawionaPATH
iLD_LIBRARY_PATH
dla wywołującego użytkownika.$SUDO_USER
można użyćman sudoers
w Debianie wspomina o innej możliwości. Nie jestem pewien, w którą stronę chcesz, ale twoje pytanie brzmi, jakbyś chciał miećenv_reset
opcję/etc/sudoers
- przeciwnie jest w zasadzieenv_keep
lista. W celu ustalenia właściwegoHOME
można użyć-H
opcjisudo
bezpośrednio lub ponowniesudoers
, zalways_set_home
opcją.Alternatywnie możesz użyć
env_file
do określenia dokładnego środowiska, które chcesz przekazać. Myślę jednak, że najlepiej jest sprawdzićenv_*
opcjeman sudoers
, ponieważ/etc/sudoers
wszystko kontroluje i o to warto się zwrócić.Oto część kontekstu, w którym używam
env_reset
wewnątrz mojegosudoers
pliku:źródło
Kiedy sudoing zmienne środowiskowe nie są zachowywane.
W moim przypadku używam tutaj dokumentu .
Umieszczasz swoje działania np. W
my_script.sh
TUTAJ DOKUMENCIE:Nie powinieneś umieszczać tutaj zmiennej bezpośrednio, ponieważ byłyby one interpretowane przez bieżącego użytkownika.
Jeśli
$MY_VAR
nie zostanie ustawione dla użytkownika uruchamiającego skrypt, nie zostanie ustawione.Zmienna musi być wywoływana w skryptach lub musisz uciec przed nimi
\
.Na przykład.
Tutaj
$MY_VAR
będzie miałsome_user
wartość kontekstową.źródło
su - some_user
zamiastsu -u some_user
.