Controlo de Acessos
O núcleo de um OS é um monitor de controlo de acesso
Controla todas as interações como hardware
Aplicações NUNCA acedem diretamente a recursos
Controla todas as interações entre entidades do modelo computacional
Sujeitos
Tipicamente os processos locais
Através da API de system calls
Uma syscall não é uma chamada ordinária a uma função
Mas também mensagens de outras máquinas
Obrigatório/Mandatório
Existem inúmeros casos de controlo de acesso obrigatório num sistema operativo
Fazem parte da lógica do modelo computacional
Não são moldáveis pelos utentes e administradores
Exemplos no Linux
O root pode fazer tudo
Sinais a processos só podem ser enviados pelo root ou o dono
Sockets AF_PACKET(RAW) só podem ser criados pelo root ou por processos com a capacidade CAP_NET_RAW
Exemplos no macOS
O root pode fazer quase tudo
O root não pode alterar binários e diretórios assinados pela Apple
Discricionário
Utilizadores podem definir regras para controlo de acesso
Podem ser definíveis apenas pelo dono/utilizador
Esta limitação é em si um Acesso Mandatório
Exemplos
Access Control Lists (ACL) discricionárias
Linux Apparmor
macOS sandboxd
Last updated