Qual é a política para permissões em / proc / PID / environ?

2

Eu vejo que o processo normal do usuário recebe permissões legíveis:

-r-------- 1 1000 1000 0 Nov 19 13:51 /proc/9083/environ

mas f.ex. O daemon SCREEN obtém root de propriedade:

-r-------- 1 root root 0 Nov 19 13:47 /proc/9167/environ

No entanto, 9167 também é UID do usuário:

# ps axnu|grep 9167
    1000  9167  0.0  0.0  23488  2008 ?   Ss   13:47   0:00 SCREEN
    
por midenok 19.11.2014 / 11:53

1 resposta

2

Na maioria dos sistemas, o /usr/bin/screen é instalado com o bit setuid para o root, o que significa que ele começa com UID 0 efetivo e somente depois descarta privilégios (retornando ao seu UID normal). / p>

(Isso é usado para implementar o recurso "compartilhamento de sessão", já que sua Tela não teria permissão para se conectar aos slots de tela de outros usuários).

Mas, como os processos privilegiados podem manter informações confidenciais na memória, o kernel oferece proteção especial - mesmo que eles descartem todos os privilégios e alternem para o seu UID, você ainda não poderá enviar sinais, anexar um depurador ou criar despejos principais .

A opção "sem core dumps", também conhecida como a configuração fs.suid_dumpable sysctl, é o que faz com que os arquivos /proc do Screen sejam permanentemente de propriedade do root, independentemente de seu UID efetivo.

    
por 19.11.2014 / 12:36