Permissões de arquivos Linux: 13 coisas mais importantes para saber

por Nada Em Troca
6 minutos de leitura
Permissões de arquivos Linux: 13 coisas mais importantes para saber

As permissões de arquivo são essenciais para quase tudo que você faz em sua máquina Linux, desde visualizar um PDF até salvar uma imagem e executar um aplicativo. O modelo principal mantém as coisas simples, mas existem alguns detalhes básicos para começar.

As permissões controlam o que você pode fazer com um arquivo

Na maioria das vezes, você lidará com permissões, será quando estiver tentando salvar ou ler um arquivo. Cada arquivo (tecnicamente, cada inode) possui um conjunto de permissões anexadas a ele. Eles determinam se você (ou qualquer outro usuário) pode ler um arquivo ou gravar nele.

Se você não tiver permissão para ler um arquivo, verá um erro ao tentar abri-lo. Da mesma forma, um arquivo sem permissão de gravação causará erros se você tentar salvá-lo:

Produção de comandos

As permissões vêm em três conjuntos de três

As permissões têm duas partes: uma ação e um conjunto de usuários. As três ações – ler, escrever e executar – definem o que pode ser feito em um arquivo, enquanto os conjuntos de usuários definem quem pode fazer isso.

Cada arquivo em seu sistema possui um proprietário e um grupo. Isso significa que você pode ter um dos três relacionamentos com um arquivo: você é o proprietário, é membro do grupo ou nenhum dos acima.

Portanto, quando se trata de permissões, existem três conjuntos de três e qualquer combinação é possível. Seu arquivo pode ser lido por todos, gravável por ninguém exceto o proprietário, executável por membros do grupo e assim por diante.

Seus rótulos podem ser enigmáticos

Freqüentemente, você verá as permissões mostradas como uma sequência de 9 caracteres, assim:

         rwxr-x--x

Esta é uma abreviatura que mostra o status das três permissões para cada conjunto de usuários aos quais elas se aplicam. Inclui, da esquerda para a direita, o status de leitura, gravação e execução do usuário, grupo e outros, respectivamente. Uma carta significa que a permissão está definida. Um hífen significa que a permissão não está definida.

É importante lembrar que “o” significa “outro”, não proprietário. Isto é fácil de esquecer; tente lembrar que “u” deve significar “usuário”, então o significado de “o” é mais fácil de deduzir por eliminação.

Dividir a string de permissão acima em seus conjuntos individuais fornece:

         user: rwx
group: r-x
other: --x

Isso significa que o proprietário do arquivo tem controle total, outros membros do grupo do arquivo podem lê-lo e executá-lo, enquanto todos os outros usuários podem apenas executá-lo.

Você pode vê-los com o comando ls

A maneira mais fácil de visualizar as permissões de arquivos na linha de comando é usar ls, o comando para listar arquivos. Por padrão, ls mostrará apenas nomes de arquivos, mas a opção -l exibe arquivos em formato longo, que inclui detalhes de permissão:

O comando ls -l mostra arquivos com permissões indicando quem pode ler, escrever e executar cada um.

Você deve conseguir identificar a sequência de caracteres de permissão logo no início; são as nove letras entre o “d/-” inicial e o “@” final no início de cada linha.

Você também pode usar o comando stat para visualizar as permissões do arquivo

Embora ls seja a maneira mais fácil de visualizar permissões, stat é provavelmente a melhor. O comando stat é como uma versão de nível inferior de ls, que mostra mais dados. Também é um pouco mais flexível, para que você possa personalizar a saída do jeito que quiser.

Aqui está um comando que mostra o nome e a string de permissões:

         stat -c '%n %A' filename

Versões incompatíveis de stat estão em uso em vários sistemas. O comando acima funciona no Ubuntu, mas no macOS, o equivalente é stat -f ‘%N %Sp’ nome do arquivo. Certifique-se de consultar a página de manual da sua estatística para verificar quais opções ela suporta.

Você pode modificar as permissões com o comando chmod

chmod significa “modo de alteração” e é a chave para atualizar as permissões dos arquivos. Por causa de todas as configurações diferentes, chmod pode parecer um pouco assustador, mas a boa notícia é que ele suporta…

Aqui está um exemplo simples:

         chmod a+r myfile

Este comando adiciona a permissão de leitura para todos os usuários ao arquivo, myfile. No argumento “a+r”, o “a” significa “todos os usuários” e é um atalho para “ugo” (usuário, grupo, outro). Você pode usar qualquer combinação dessas três letras. A seguir, o símbolo “+” significa “adicionar”. Outras opções são “-” para remover uma permissão ou “=” para definir a permissão exatamente. Finalmente, o “r” neste exemplo significa “ler”; pode ser qualquer combinação de “r”, “w” para gravação e “x” para execução.

Você pode até definir várias permissões de uma só vez:

         chmod u=rw,og=r new_file.txt

Este comando permite que o proprietário leia e grave um arquivo, enquanto todos os outros podem apenas lê-lo. Ninguém pode executá-lo.

Você deve ter em mente que só pode usar chmod para modificar arquivos de sua propriedade (a menos que tenha privilégios de root).

Vale a pena aprender o básico do chmod e guardar alguns casos comuns na memória. Mas o comando é poderoso e você pode usar o chmod de muitas maneiras diferentes.

Você pode usá-los para tornar programas executáveis

Mencionamos a permissão de execução sem realmente explicá-la. Essa permissão realmente controla se você pode executar um arquivo como um comando. Normalmente, você usará essa permissão com dois tipos de arquivos: binários e scripts de shell. Binários são programas compilados executados pelo kernel, enquanto os scripts são executados por um interpretador, como um shell ou uma linguagem de script.

Você deve observar que a remoção do bit de execução não impede que alguém execute um programa. Embora eles não possam executá-lo digitando diretamente o nome de seu arquivo como um comando, ele ainda poderá ser executado passando o arquivo como entrada para seu intérprete. Por esse motivo, você deve considerar o bit de execução mais como uma rede de segurança do que como um cadeado. Ele existe para impedir que as pessoas executem acidentalmente um programa, e não para tornar impossível que o façam.

As permissões são uma rede de segurança, não uma garantia

Na verdade, o bit de execução não é a única permissão que não é uma garantia tão firme quanto você poderia esperar. Você realmente deveria pensar nas permissões mais como um conjunto de grades de proteção do que como um cinto de segurança rigoroso.

Veja o caso simples de um arquivo somente leitura: você ainda pode excluí-lo?

         touch foo
chmod a-w foo
rm foo
O comando rm apresenta a opção de substituir um arquivo protegido contra gravação e excluí-lo mesmo assim.

O comando rm ainda permite excluir um arquivo, mesmo que você não consiga gravar nele! Isso parece contra-intuitivo, mas na verdade é apenas um efeito colateral de como as permissões funcionam. Se você possui um arquivo, você sempre pode usar chmod para obter o acesso que desejar. Portanto, faz sentido que ferramentas como rm ofereçam a opção de substituir as permissões de arquivo neste caso especial.

Novamente, as permissões de arquivo servem para impedir que você faça algo errado acidentalmente. Eles estão lá para evitar que você salve um documento importante de forma descuidada, e não para garantir que o documento permaneça em seu disco até o fim dos tempos.

Eles têm um significado diferente para diretórios

Como o Linux trata os diretórios como outro tipo de arquivo, eles também podem ter permissões. No entanto, devido à sua natureza, as permissões nos diretórios têm um significado ligeiramente diferente.

A permissão de leitura permite ler o conteúdo de um diretório, ou seja, a lista de arquivos que ele contém. Isso significa, por exemplo, que você não pode executar ls em um diretório que não consegue ler:

Uma mensagem de erro do comando ls dizendo “Permissão negada.

A permissão de gravação permite gravar o conteúdo de um diretório. Por exemplo, isto controla se você pode criar um novo arquivo dentro de um diretório ou renomear um dentro dele:

Um diretório protegido contra gravação nega a criação de um arquivo dentro dele ou a movimentação de um existente.

A permissão de execução é totalmente diferente; realmente não há analogia que faça sentido para executar um diretório! Portanto, o Linux sobrecarrega essa permissão para diretórios para significar algo como “acessar o diretório”.

Um diretório não executável não pode ser alterado ou listado.

A maioria dos navegadores de arquivos gráficos também permite gerenciá-los

O aplicativo Arquivos do Ubuntu, como muitos navegadores de arquivos GUI, permite visualizar as permissões para um determinado arquivo por meio do menu de contexto Propriedades:

Uma caixa de diálogo Arquivos do Ubuntu mostrando as propriedades de um arquivo, incluindo um resumo de suas configurações de permissão.

As permissões e o status de execução são mostrados na parte inferior desta caixa de diálogo. Você pode clicar na linha Permissões para visualizar detalhes completos da permissão e atualizar o status de leitura/gravação de qualquer conjunto de usuários:

Uma caixa de diálogo Arquivos do Ubuntu mostrando detalhes de permissão para um arquivo, com configurações individuais para o proprietário, grupo e outros usuários.

O Finder do MacOS mostra permissões na caixa de diálogo Obter informações para qualquer arquivo:

Uma caixa de diálogo do macOS Finder mostrando uma tabela de permissões de arquivo com diferentes grupos em uma coluna e privilégios na próxima.

As permissões são exibidas para o usuário, grupo e outros em linhas de cima para baixo. Observe que o Finder não permite alterar a permissão de execução.

Este artigo foi útil?
Gostei0Não Gostei0

Deixe um comentário

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00