Guia (nem tanto) Introdutório do Linux
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, 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.
Lidando com Arquivos
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:
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.
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.
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.