2.5 Como o Linux verifica as permissões


Cada vez que um programa requisita a abertura de um arquivo, ele o faz com a chamada de sistema open(). Esta, por sua vez, funciona da seguinte forma:

- Após algumas verificações (que não caabe serem citadas aqui), é executada uma função chamada permission(), que verifica se o UID ou o GID em questão podem abrir o arquivo. Esta verificação é executada pela chamada de sistema sys_access().

A sys_access() recebe dois parâmetros: o ponteiro para o arquivo e o que se deseja fazer nele, que consistem em:
- F_OK: pergunta se o arquivo existe
- R_OK: pergunta se o arquivo pode ser lido
- W_OK: pergunta se algo pode ser escrito no arquivo
- X_OK: pergunta se o arquivo pode ser executado
Caso alguma das permissões questionadas não seja permitida, sys_access() retorna o valor EACESS.

A administração destas permissões se dão através dos comandos chmod e chown que trocam, respectivamente, os modos e os UID e GID donos do arquivo. Estes comando utilizam as chamdas de sistema sys_chmod() e sys_chown().