A única coisa que confunde são os códigos e você os interpreta assim:
'r' read 'w' write 'm' memory map as executable 'k' file locking 'l' creation hard links 'ix' execute and inherit this profile 'Px' execute under another profile, after cleaning the environment 'Ux' execute unconfined, after cleaning the environment
O resto do arquivo são principalmente diretórios, arquivos e bibliotecas com algumas vezes alguns parâmetros na frente (como PROC e HOME que parecem fáceis de entender) e expressões regulares para torná-lo mais flexível e às vezes um 'negar' ou 'proprietário' em frente da linha (estes parecem ser auto-explicativos para mim: eles negam o acesso e limitam as ações no caso de ser o dono fazendo-as).
Em relação ao PROC:
Exemplo:
# for networking network inet stream, network inet6 stream, @{PROC}/[0-9]*/net/if_inet6 r, @{PROC}/[0-9]*/net/ipv6_route r,
e faça
cd /proc/ ls *
Veja todos os diretórios com dígitos? Estes correspondem a cada processo em execução.
Se algum deles contiver um diretório net
( network
) e que contiver um arquivo if_net6
ou ipv6_route
, eles serão considerados read
.