O que faz com que os recursos / proc / pid / * se tornem propriedade do root, apesar de o procs ser lançado como um usuário normal?

6

Tenho notado que alguns procs, como o bash, têm seus recursos /proc/<pid>/ inteiros legíveis pelo usuário que criou esse proc. No entanto, outras procs, como chrome ou gnome-keyring-daemon, têm a maioria de seus recursos /proc/<pid>/ acessíveis apenas pelo root, apesar do próprio processo ser de propriedade do usuário normal e nenhum suid ser chamado.

Eu vasculhei o kernel um pouco e descobri que o / proc / stuff fica limitado se uma tarefa não tem um sinalizador 'dumpable', mas estou tendo dificuldade em entender em quais cenários uma tarefa se torna impossível (além da caso setuid, que não se aplica ao chrome ou ao gnome-keyring):

link

Alguém se importa em me ajudar a entender o mecanismo subjacente e as razões para isso?

Obrigado!

Editar:

Encontrou um bom documento sobre o motivo pelo qual você não gostaria de ter seu agente SSH (como gnome-keyring-daemon ) disponível por seu usuário. Ainda não tenho certeza como gnome-keyring-daemon está se tornando indestrutível.

link

    
por alienth 31.05.2014 / 14:53

1 resposta

6

O Linux tem uma chamada de sistema, que mudará o sinal dumpable . Aqui está um exemplo de código, que eu escrevi alguns anos atrás:

#include <sys/prctl.h>
...
/* The last three arguments are just padding, because the
 * system call requires five arguments.
 */
prctl(PR_SET_DUMPABLE,1,42,42,42);

Pode ser que gnome-keyring-daemon deliberadamente defina o sinalizador dumpable como zero por motivos de segurança.

    
por 31.05.2014 / 15:04