screen
não desativa a variável de ambiente; é removido pelo próprio Linux.
Na maioria dos sistemas, o /usr/bin/screen
executável é instalado com o setgid bit for utmp
group, para poder modificar o utmp
banco de dados. Ele também usa setgid para controlar o acesso ao diretório do soquete ( /var/run/screen/
).
No Linux, quando um setuid (ou setgid ) programa é executado, ele não recebe certas variáveis de ambiente (incluindo LD_LIBRARY_PATH
, várias outras LD_*
variáveis, e HOSTALIASES
), a fim de reduzir os possíveis pontos de ataque: Caso contrário, você poderia escrever uma pequena biblioteca e truque su
ou sudo
para chamar suas funções "aprimoradas" dessa maneira.
Você pode remover o bit setgidscreen
, mas precisará tornar o diretório do soquete totalmente acessível a todos (modo 0777). Não deve ser um risco de segurança, como screen
também verifica o próprio UID do attacher.
No entanto, você não deve tornar o utmp
banco de dados gravável mundialmente.