/dev/mem
só pode ser aberto por processos com CAP_SYS_RAWIO
; head
, não sendo executado como root, não tem esse recurso. Você pode "consertar" isso usando setcap
(mas só faça isso em uma cópia do binário ...):
cp /usr/bin/head .
sudo setcap cap_sys_rawio+ep head
./head /dev/mem | hexdump -C
Ativar o acesso a /dev/mem
para um usuário específico envolve, portanto, a participação em grupos (para que o dispositivo possa ser aberto) e os recursos binários.