Não é possível ler / proc / pid / smaps, apesar de ter permissões de modo 444

3

Estou tentando escrever um script que examina o uso da memória para executar processos. Para fazer isso, ele precisa ler os arquivos / proc / * / smaps.

Os processos pertencentes a root têm a permissão definida como '-r - r - r--', que deve ser legível por todos, certo?

exemplo de saída de ls -l [EDIT: agora com permissões de diretório]

ls -l /proc/939/smaps
-r--r--r-- 1 root root 0 2012-07-11 12:11 /proc/939/smaps

ls -ld /proc/939/smaps
-r--r--r-- 1 root root 0 2012-07-11 12:11 /proc/939/smaps

tente ler:

cat /proc/939/smaps
cat: /proc/939/smaps: Permission denied

há algo óbvio que sinto falta aqui?

EDIT2: Em investigações posteriores, outros arquivos, como / proc // cmdline, são legíveis, então pode ser apenas um caso especial para o arquivo smaps?

    
por YenTheFirst 11.07.2012 / 21:20

1 resposta

0

Por motivos de segurança, a leitura de /proc/PID/smaps requer o recurso CAP_SYS_PTRACE .

Você pode adicionar esse recurso ao seu aplicativo usando sudo setcap cap_sys_ptrace+ep YOUR_APPLICATION .

    
por 27.10.2017 / 15:03