Todos os sistemas operacionais baseados em Unix, herdaram seu rigoroso (e muito eficiente) método de controle de permissões de arquivos e diretórios. Desta forma, precisamos compreender o funcionamento deste mecanismo.
Premissas:
Para ver as permissões de arquivos e diretórios em aluma pasta, precisamos executar o comando “ls -l”. este comando irá retornar a lista de arquivos e diretórios mostrando as permissões e os usuários do arquivo. Como no exemplo abaixo:
drwxr-xr-x | 3 aluno1 aluno1 | 4096 |
2010-03-10 17:27 |
anjuta |
-rwxr-xr-x | 1 aluno1 aluno1 | 6392 |
2010-06-02 16:43 |
a.out |
-rw-r--r-- | 1 aluno1 aluno1 | 73 |
2010-06-02 16:43 |
teste.c |
drwxr-xr-x | 3 aluno1 alunos | 4096 |
2011-04-25 09:34 |
enquete |
-rwxr--r-- | 1 aluno1 alunos | 892 |
2010-03-20 00:15 |
fila.py |
primeiro campo – o primeiro campo identifica se o objeto é um arquivo ( - ) ou um diretório ( d );
segundo campo – permissões para usuário, grupo e outros – sempre em conjunto de 9 sinais;
terceiro campo - contagem de hard links ;
quarto e quinto campos – usuário e grupo do arquivo ou diretório;
sexto campo – tamanho do arquivo; se for um diretório informa quantos bytes usamos para armazenar o nome do diretório em disco;
sétimo campo – data e hora da criação do objeto;
oitavo campo – nome do objeto.
Todo arquivo ou diretório pertence a algum dono e a algum grupo. Desta forma podemos definir quem é o proprietário do arquivo e qual grupo ele irá pertencer, para depois definir qual a permissão que cada um destes participantes terão sobre o arquivo.
Como visto no item anterior, o dono e o grupo são mostrados pelo comando ls -l – noquarto e quinto campo respectivamente. É possível (e muitas vezes necessário) modificar o dono de algum arquivo ou diretório.
Para executar estes testes, basta criar (como root) uma pasta chamada teste na raiz;
As permissões determinarão o tipo de acesso que cada usuário terá em determinado arquivo ou diretório. Após o identificador de arquivo/diretório, teremos 3 campos para cada tipo de usuário.
U |
G |
O |
---|---|---|
rwx |
rwx |
rwx |
Onde:
Cada permissão pode ser incluída ou removida (se preferir ativada/desativada), modificando a forma de acesso. Esta modificação de permissão se dá com o comando "chmod" - acrônimo de "change mode" ou mudar modo de acesso.
De forma mais prática, vamos criar um arquivo teste qualquer – vazio mesmo.
$ touch teste
Ao darmos o comando ls -l verificamos as permissões deste arquivo que são as seguintes:
-rwxr-xr-x
Dividindo os códigos vemos que:
"-" - indica que é um arquivo;
"rwx" - que o usuaŕio tem permissão de leitura, escrita e execução;
"r-x" - indica que o grupo tem permissão somente de leitura e execução;
"r-x" - indica que outros tem permissão somente de leitura e execução;
Vamos supor que este arquivo é um arquivo muito confidencial... precisamos fazer algumas modificações:
Bloqueando acesso aos outros:
→ $ chmod o-rwx teste
Desta forma dizemos outros perdem leitura escrita e execução – somente dono e grupo poderão ler/escrever/executar o arquivo;
Vamos supor que este arquivo é um arquivo muito confidencial... precisamos fazer algumas modificações:
| ||||
| ||||
|
O mecanismos de manipulação de permissões para diretórios é o mesmo de arquivos. Contudo a função de cada permissão é diferente.
Vale salientar que o usuário root está acima destas permissões, tanto que em sistema Unix, é conhecido como "superusuário". Esta característica confere ao root poder total sobre o sistema.
| ||||
| ||||
|