O kernel do Linux requer sudo
para /proc/<pid>/pagemap
desde 4.0
Isso está documentado em: link
Since Linux 4.0 only users with the CAP_SYS_ADMIN capability can get PFNs.
In 4.0 and 4.1 opens by unprivileged fail with -EPERM. Starting from
4.2 the PFN field is zeroed if the user does not have CAP_SYS_ADMIN.
Reason: information about PFNs helps in exploiting Rowhammer vulnerability.
Em que CAP_SYS_ADMIN
significa basicamente "executar como sudo
" ou alternativamente:
sudo setcap cap_sys_admin+ep program_that_uses_pagemap
./program_that_uses_pagemap
Tenha em mente que /proc
é um sistema de arquivos virtual e, portanto, o kernel do Linux pode impor permissões adicionais ou até mesmo alterar arbitrariamente os resultados para não-raiz, como acontece aqui por razões de segurança, definindo PFNs como zero.