2.3 Ler, gravar e executar: o básico


Cada arquivo ou diretório, em um sistema Linux, podem ser acessados para três propósitos: leitura, gravação e execução. Estas três ações resumem o que um usuário pode fazer realmente com um arquivo em qualquer sistema operacional. Explicando cada uma delas:

-Leitura: Só é possível ao usuárrio ler o arquivo. Portanto, pode-se imprimir, copiar, ler, mas nenhuma ação que modifique o arquivo (gravação, remoção, renomeação, alteração) é permitida.
-Gravação: O oposto da leitura. Pode-se gravar, apagar (por mais paradoxal que pareça), renomear, mas não se pode ler. Geralmente, esta permissão é utilizada juntamente com a leitura para dar plenos poderes sobre um arquivo. Para diretórios, esta permissão significa que o usuário pode criar arquivos dentro do mesmo.
-Execução: No Linux, um arquivo executável não tem uma extensão do tipo EXE ou COM. Para isso, é necessário dar permissão de execução para um arquivo. Também serve para designar acesso a um diretório ou acesso a um link. Se um usuário tiver acesso de leitura e escrita sobre um diretório, não poderá entrar nele sem a permissão de execução.

Como pode se perceber, para este tipo de estrutura funcionar, é necessário que cada arquivo tenha permissões referentes ao usuário dono do arquivo, ao grupo dono do arquivo e mais um tipo de usuário, chamado público. Ou seja, permissões dadas ao público são permissões dadas a qualquer usuário que utilize o computador.

Uma listagem de um diretório pode mostrar na prática como é organizada esta estrutura:

drwxr-x---   3 marcelo tecnicos  4096 Sep 18 08:37 ./
drwxr-xr-x  23 root    root      4096 Sep 12 08:55 ../
-rw-rw-r--   1 marcelo teccnicos 34076 Aug 2 2001 ManualMySQL.txt
-rw-rw-r--   1 marcelo teccnicos 45976 Aug 2 2001 ManualPostgreSQL.txt
-rwxr-xr--   1 marcelo teccnicos  8765 Aug 2 2001 Script.backup*
drwx------   1 marcelo tecnicos  4096 Aug 2 2001 particular/
Exemplo 3 - diretório /home/tecnicos/marcelo/

No exemplo 3, cada linha representa um arquivo ou diretório. Por padrão, a primeira e a segunda linha sempre representam os atributos sobre o diretório atual e o imediatamente acima (se não estivermos na raiz, claro) respectivamente. Os dez primeiros caracteres serão um dos alvos de estudo neste trabalho, juntamente com a coluna de usuário e grupo (onde se pode ver, em sua maioria no exemplo 3, usuário marcelo e grupo tecnicos). O primeiro caractere serve para diferenciar o arquivo entre três tipos: arquivo ("-"), diretório ("d") ou link ("l"). Os próximos nove estão divididos em três partes iguais, cada qual mostrando as permissões referentes ao: usuário dono do arquivo (mostrado na coluna "usuário"), grupo dono do arquivo (mostrado na coluna "grupo") e público. A letra "r" significa acesso de leitura (Read), a "w" acesso de escrita (Write) e a "x" acesso de execução (eXecute). Por exemplo, o arquivo "ManualMySQL.txt" é um arquivo (por ter um "-" no primeiro caractere), pode ser lido e gravado pelo usuário "marcelo", igualmente lido e gravado por qualquer componente do grupo "tecnicos", mas somente lido por qualquer outro usuário. Já o diretório "particular" é um diretório (por ter um "d" no primeiro caractere), pode ser lido, gravado ou acessado pelo usuário "marcelo", e só. Nem o grupo nem o público tem nenhum tipo de acesso ao arquivo (por isso o nome, é algo particular do usuário, não deve ser acessado por ninguém).

A única excessão à regra é o usuário "root", que é o administrador do sistema e tem poderes totais sobre qualquer arquivo ou diretório de qualquer usuário ou grupo.