Neste rápido tutorial, veremos como podemos usar o comando chmod numa máquina Ubuntu para encontrar, modificar e remover permissões de usuários de arquivos específicos que existem no sistema de arquivos do usuário. Vamos jogar através de várias condições para que possamos dominar comandos chmod básicos que podem tornar nossa vida diária mais fácil com o Ubuntu.
Permissões do Linux
Permissões do Linux são um grande conjunto de regras que são simples de entender se entendermos os direitos básicos. Os três pontos principais que precisamos entender para saber como as permissões Linux funcionam são:
- O elemento para o qual as permissões foram definidas
- Que ações podem ser realizadas com uma permissão
- Quem pode realizar que ações
Existem dois elementos básicos no Sistema de Arquivos Linux:
- Directórios
- Arquivos
Há três acções que podem ser realizadas:
- Ler
- Escrever
- Executar. Além de executar scripts, as mesmas ações são necessárias para criar arquivos e outras pastas dentro dele
O usuário que pode executar essas ações são:
- Proprietário do arquivo
- Grupo do dono do arquivo
- Usuário que não está associado ao grupo do dono ou ao próprio dono
Para ver as permissões relacionadas a um arquivo, execute o seguinte comando:
Aqui está o que obtemos de volta com este comando:
Permitir permissão para ficheiros
Na saída, os primeiros 10 caracteres apresentam a permissão para o ficheiro:
- Primeiro caractere, que é ‘-‘ neste caso significa que se trata de um ficheiro. Para um diretório, este teria sido um ‘d’.
- Nextos nove caracteres representam permissões para o dono, o grupo do dono, e outros, respectivamente.
Permissões de alteração
Sintaxe para modificar as permissões de um arquivo parecido com:
Representação octal para Permissões
Podemos apresentar as permissões como um número octal. Por exemplo, para definir read, escreva & executar permissões para o dono, leia & escrever permissões para seu grupo, e nenhuma permissão para outros, em um arquivo hello.txt, vamos executar o seguinte comando:
Após executarmos o comando acima e tentarmos ler um arquivo com uma conta de não-proprietário usando o seguinte comando:
Obteremos o seguinte erro:
Mas de onde vem este número? Cada dígito desse número representa um conjunto de permissões. Vejamos como eles foram derivados:
- 0: Significa sem permissão
- 1: Significa a permissão de execução
- 2: Significa a permissão de escrita
- 4: Significa a permissão de leitura
Para atribuir permissão de leitura, escreva & executar permissões para o proprietário, atribuímos-lhe o número 7(= 4 + 2 + 1). Vamos entender melhor isso em uma tabela de dígitos:
Número | Binário | Ler | Escrever | Executar |
0 | 000 | NO | NO | NO |
1 | 001 | NÃO | NÃO | YES |
2 | 010 | NÃO | YES | NO |
3 | 011 | NO | YES | YES |
4 | 100 | YES | NO | NO |
5 | 101 | YES | NO | YES |
6 | 110 | YES | SIM | NO |
7 | 111 | SIM | SIM | SIM |
Acima da tabela está muito claro o que cada um representa em termos de permissões de arquivo.
Representação de caracteres para permissões
Podemos apresentar as permissões como um número octal. Por exemplo, para definir read, escreva &Executar permissões para o dono, leia &Escrever permissões para seu grupo, e nenhuma permissão para outros, para um arquivo hello.txt, vamos executar o seguinte comando:
Para adicionar permissões a um usuário existente, também podemos fazer:
Aqui, a permissão de escrita estava sendo atribuída ao grupo de usuários do dono do arquivo.
Mudanças de PermissõesRecursivas
Tambem podemos mudar as permissões de arquivos contidos em um diretório específico com um único comando. Para modificar as permissões de cada arquivo e pasta em um diretório fornecido de uma vez, use sudo chmod com -R:
Vemos a seguinte saída que reflete claramente a mudança nas permissões dos arquivos:
Mudança recursiva de permissões de arquivo
Conclusão
Nesta lição, nós olhamos como podemos modificar as permissões de um arquivo e, se necessário, fazê-lo recursivamente. Entendemos conceitos básicos por trás de como as permissões do Linux podem nos ajudar muito em nosso trabalho diário.