Este artigo é uma tradução livre de parte do
Linux User's Guide. Aqui você verá partes do guia que tratam do poder do sistema: como comandos que parecem tão simples quando usados sozinhos, quando combinados com outros comandos, produzem um sistema poderoso e flexível. Embora os nomes desses comandos não sejam tão intuitivos, veremos como são úteis e sofisticados em seu funcionamento.
Veja o caso de comandos básicos como cd, mv, e rm. Há outros comandos que agem sobre os arquivos, mas não agem sobre os dados nesses arquivos. Aqui estão incluídos os comandos touch, chmod, du, e df. Todos esses comandos não alteram os arquivos, mas mudam coisas que o Linux 'lembra' sobre os arquivos. Algumas dessas são:
- As datas relacionadas com os arquivos: cada arquivo possui três datas associadas a ele. São: a data de criação (quando o arquivo foi criado), a última modificação (quando o arquivo foi modificado pela última vez), e o último acesso (quando o arquivo foi lido pela última vez).
- O proprietário: todo arquivo tem um 'dono', ou proprietário.
- O grupo: todo arquivo tem um grupo de usuários associado a ele. O grupo mais comum é chamado 'users', que normalmente é compartilhado por todos os usuários do sistema.
- As permissões: todo arquivo possui permissões (também chamadas 'privilégios') associadas a ele. Essas permissões dizem quem pode acessar o arquivo, modificá-lo ou, no caso de programas, executá-lo. Cada uma dessas permissões pode ser imposta separadamente ao dono, ao grupo, ou a todos os usuários.
Veja o exemplo abaixo:
touch arquivo1 arquivo2 ... arquivoN
O comando touch irá 'atualizar' as datas relacionadas com os arquivos listados para a data atual. Se o arquivo não existir, ele será criado. Também é possível colocar uma data específica, basta usar a opção -t. Você pode alterar apenas a data de acesso (use a opção -a), ou apenas a data de modificação (use a opção -m). Para usar a opção -t, faça como segue:
[[CC]YY]MMDDhhmm[.SS]
Na linha acima, se CC não for utilizado, o touch entenderá que o ano CCYY está no intervalo 1969-2068. SE SS não for indicado, será considerado como 0.
O comando chmod altera as permissões de um arquivo. Segue a forma abaixo.
chmod [-Rv] mode arquivo1 arquivo2 ... arquivoN
Antes de estudar como usá-lo, vejamos quais são as permissões que existem no Linux. Cada arquivo tem um grupo de permissões associado a ele. Estas permissões dizem ao Linux se um arquivo pode ou não ser lido, modificado ou executado como um programa. Isso é bom, pois previne que indivíduos maliciosos façam o que não se deve, e indivíduos desavisados façam bobagens.
Portanto o Linux reconhece três tipos de pessoas: primeiro, o dono ou proprietário do arquivo. O segundo é o 'grupo', que na maioria dos casos será 'users', que são os usuários normais do sistema (para ver o grupo de um arquivo, use 'ls -l arquivo'). E depois, há todos os outros além do proprietário e dos membros do grupo.
Um arquivo pode ter permissões de leitura ou modificação para o dono, leitura para o grupo, e nenhuma permissão para os outros. Ou, por alguma razão, um arquivo pode ter permissões de leitura/modificação para o grupo e para os outros, mas não ter permissões para o dono!
Vamos usar o chmod para aprender algo sobre permissões. Crie um arquivo qualquer para teste. Por padrão, você tem permissão para ler e modificar este arquivo (as permissões dadas a outros dependem de como o sistema - e também sua conta - está configurada). Teste sua permissão, abrindo o arquivo usando cat. Agora, vamos tirar sua permissão de ler o arquivo! Digite:
chmod u-r arquivo
O parâmetro u-r diz 'usuário menos leitura'. Agora, se você tentar ler o arquivo, receberá a mensagem 'Permission denied error!'. Adicione a permissão de leitura, simplesmente fazendo
chmod u+r arquivo
Permissões para diretórios seguem as mesmas idéias: ler, escrever e executar, mas de forma um pouco diferente. A permissão de leitura permite ao usuário (ou o grupo ou todos) ler o diretório, ou seja, listar os arquivos, vendo seus nomes. A permissão de escrita permite adicionar ou remover arquivos. A permissão de execução permite acessar os arquivos no diretório ou subdiretórios.
Para usar o comando chmod, troque 'mode' pelo alvo da mudança: o usuário, o grupo, etc, e o que fazer com ele. Trocando em miúdos, faça similar ao lidar com arquivos: use o símbolo '+' para adicionar um privilégio, e o símbolo ' - ' para tirá-lo.
A opção R mudará a permissão do diretório, e de todos os arquivos e diretórios dentro dele, e assim sucessivamente (o 'R' vem de recursivo). Usando 'v', você faz o chmod relatar o que está acontecendo.