screen
не сбрасывает переменную окружения; он удален самой Linux.
В большинстве систем /usr/bin/screen
исполняемый файл устанавливается с битом setgid для utmp
группы, чтобы иметь возможность изменять utmp
базу данных. Он также использует setgid для управления доступом к каталогу сокетов ( /var/run/screen/
).
В Linux, когда запускается программа setuid (или setgid ), она не получает определенные переменные среды (включая LD_LIBRARY_PATH
несколько других LD_*
переменных и HOSTALIASES
), чтобы уменьшить возможные точки атаки: в противном случае вы можете написать небольшую библиотеку и трюк su
или sudo
таким образом вызывая ваши «улучшенные» функции.
Вы можете удалить бит setgidscreen
, но вам придется сделать каталог сокетов полностью доступным для всех (режим 0777). Это не должно быть угрозой безопасности, так как screen
также проверяет сам UID атакующего.
Однако вы не должны делать utmp
базу данных доступной для записи.