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().