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