Uruchomienie screen
w bash powoduje wyczyszczenie zmiennej LD_LIBRARY_PATH. Przeczytałem trochę i wydaje się, że jest to oczekiwane zachowanie, ale muszę to obejść.
Obejściem tego problemu jest dodanie deklaracji LD_LIBRARY_PATH do ~/.bashrc
. W moim przypadku zmienna LD_LIBRARY_PATH bardzo się zmienia między uruchomieniem powłoki a wywołaniem screena, więc muszę pobrać bieżącą wartość LD_LIBRARY_PATH do screen
sesji.
bash
environment-variables
gnu-screen
Andrew Wood
źródło
źródło
Odpowiedzi:
screen
nie wyłącza zmiennej środowiskowej; jest usuwany przez sam Linux.W większości systemów
/usr/bin/screen
plik wykonywalny jest instalowany z bitem setgid dlautmp
grupy, aby móc modyfikowaćutmp
bazę danych. Używa również setgid do kontrolowania dostępu do katalogu socket (/var/run/screen/
).W systemie Linux, gdy uruchamiany jest program setuid (lub setgid ), nie otrzymuje pewnych zmiennych środowiskowych (w tym
LD_LIBRARY_PATH
kilku innychLD_*
zmiennych iHOSTALIASES
), w celu zmniejszenia możliwych punktów ataku: W przeciwnym razie możesz napisać małą bibliotekę i podstępsu
lubsudo
do wywoływania w ten sposób swoich „ulepszonych” funkcji.Możesz usunąć bit setgid
screen
, ale będziesz musiał uczynić katalog gniazd całkowicie dostępnym dla wszystkich (tryb 0777). Nie powinno to jednak stanowić zagrożenia dla bezpieczeństwa, ponieważscreen
sprawdza również sam identyfikator UID administratora.Nie należy jednak nadawać tej
utmp
bazie danych możliwości zapisu na całym świecie.źródło
chgrp root $(which screen)
ichmod 777 /var/run/screen
. Możesz przetestować za pomocą tego małego skryptu bash:while true; do echo $LD_LIBRARY_PATH; sleep 2; done
zobaczysz, że ścieżka została pomyślnie wyświetlona. Dzięki grawitacji.W twoim
.screenrc
możesz użyćsetenv
polecenia, aby ustawić wartość w środowisku ekranu.Jest to ustawiane przed uruchomieniem powłoki. Oczywiście
LD_LIBRARY_PATH_SCREEN
należy ustawić przed uruchomieniem ekranu.źródło
_SCREEN
można ustawić w pliku rc lub w skrypcie opakowującym, który uruchamia ekran.Spróbuj
export
interesującej Cię zmiennej środowiskowej.źródło