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