Permissões de arquivo Linux

Permissões de arquivo do Linux - 1.0

Noções básicas de propriedade e permissões de arquivos no Linux. Aprenda a entender quem são os proprietários de um arquivo ou diretório, como as permissões de arquivo funcionam e como você pode visualizá-las e saiba como definir você mesmo as permissões básicas de arquivo.

Permissões e propriedade - por quê? >

Se você não pode acessar alguns dos arquivos em seu próprio sistema Linux, geralmente é por causa de permissões de acesso de arquivo configuradas incorretamente. Se você é o único usuário em sua máquina Linux, você deve estar se perguntando qual é o sentido de ter todas essas permissões (ou a falta delas) que restringem seu acesso ao seu próprio sistema operacional Penguin. No entanto, antes de puxar seu cabelo, você deve ter em mente que o Linux foi projetado para ser um ambiente multiusuário. Em um ambiente com mais de um usuário, é crucial ter um sistema seguro para decidir quais arquivos são seus e quem pode mexer neles.

Mesmo se você for o único usuário em um sistema de desktop comum, as permissões de arquivo ajudam a manter seus arquivos importantes protegidos, tanto de estranhos quanto de seus próprios erros. 🙂

 

Noções básicas sobre propriedade de arquivos >

Todos os arquivos em seu sistema Linux, incluindo diretórios, pertencem a um usuário e grupo específicos. Portanto, as permissões de arquivo são definidas separadamente para usuários, grupos e outros.

Usuário: O nome de usuário da pessoa que possui o arquivo. Por padrão, o usuário que cria o arquivo se tornará seu proprietário.

Grupo: O grupo de usuários que possui o arquivo. Todos os usuários que pertencem ao grupo que possui o arquivo terão as mesmas permissões de acesso ao arquivo. Isso é útil se, por exemplo, você tiver um projeto que requer um grupo de usuários diferentes para acessar certos arquivos, enquanto outros não podem. Nesse caso, você adicionará todos os usuários ao mesmo grupo, certifique-se de que os arquivos necessários sejam de propriedade desse grupo e defina as permissões de grupo do arquivo de acordo.

De outros: Um usuário que não é o proprietário do arquivo e não pertence ao mesmo grupo do arquivo. Em outras palavras, se você definir uma permissão para a categoria “outro”, isso afetará todos os outros por padrão. Por esse motivo, as pessoas costumam falar sobre definir a permissão "mundial" quando querem dizer definir as permissões para "outro".

 

Noções básicas sobre permissões de arquivo >

Existem três tipos de permissões de acesso no Linux: leitura, gravação e execução. Essas permissões são definidas separadamente para o proprietário do arquivo, grupo e todos os outros usuários.

Permissão de leitura. Em um arquivo regular, o bit de permissão de leitura significa que o arquivo pode ser aberto e lido. Em um diretório, a permissão de leitura significa que você pode listar o conteúdo do diretório.

Permissão de gravação. Em um arquivo normal, isso significa que você pode modificar o arquivo, também conhecido como gravar novos dados no arquivo. No caso de um diretório, a permissão de gravação significa que você pode adicionar, remover e renomear arquivos no diretório. Isso significa que se um arquivo tiver o bit de permissão de gravação, você tem permissão para modificar o conteúdo do arquivo, mas pode renomear ou excluir o arquivo apenas se as permissões do arquivo anuário permitir que você faça isso.

Execute permissão. No caso de um arquivo normal, isso significa que você pode executar o arquivo como um programa ou script de shell. Em um diretório, a permissão de execução (também chamada de "bit de pesquisa") permite que você acesse arquivos no diretório e entre nele, com o cd comando, por exemplo. No entanto, observe que embora o bit de execução permita que você entre no diretório, você não tem permissão para listar seu conteúdo, a menos que também tenha as permissões de leitura para esse diretório.

 

Como visualizar as permissões de arquivo >

Você pode ver as permissões de acesso de um arquivo fazendo a listagem longa do diretório com o ls -l comando. É assim que uma lista longa de diretórios pode parecer:

me@puter: /home/writers$ ls -l
total 17
drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

O que a saída de ls -l significar? A primeira coluna, aquela que parece um monte de bobagens, mostra o tipo de arquivo e as permissões. A segunda coluna mostra o número de links (entradas do diretório que se referem ao arquivo), a terceira mostra o dono do arquivo e a quarta mostra o grupo ao qual o arquivo pertence. As outras colunas mostram o tamanho do arquivo em bytes, data e hora da última modificação e o nome do arquivo.

A primeira coluna, aquela que mostra as permissões do arquivo e se parece com um mumbo jumbo, é organizada em quatro grupos separados, embora certamente não pareça muito organizada.

O primeiro grupo consiste em apenas um caractere e mostra o tipo do arquivo. Por exemplo, d significa um diretório e - significa um arquivo normal, então se você der uma olhada em nosso exemplo de saída, você notará dir é um diretório, enquanto file e otherfile são arquivos regulares.

O primeiro caractere pode ser qualquer um destes:

d = diretório
- = arquivo regular
l = link simbólico
s = Soquete do domínio Unix
p = pipe nomeado
c = arquivo de dispositivo de caractere
b = bloquear arquivo de dispositivo

Os próximos nove caracteres mostram as permissões do arquivo, divididos em três grupos, cada um consistindo de três caracteres. O primeiro grupo de três caracteres mostra as permissões de leitura, gravação e execução para usuário, o proprietário do arquivo. O próximo grupo mostra as permissões de leitura, gravação e execução do grupo do arquivo. Da mesma forma, o último grupo de três caracteres mostra as permissões para de outrostodos os outros. Em cada grupo, o primeiro caractere significa a permissão de leitura, a segunda permissão de gravação e a terceira permissão de execução.

Os personagens são bem fáceis de lembrar.

r = permissão de leitura
w = permissão de gravação
x = permissão de execução
- = sem permissão

O que isso significa na prática? Vamos dar um exemplo. Lembra da lista de diretórios imaginária que fizemos no início? A saída ficou assim:

drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Como já notamos, dir é um diretório, porque a primeira coluna começa com um d. O proprietário deste diretório é usuário nana e o dono do grupo é writers. Os três primeiros personagens rwx, indique o proprietário do diretório, nana neste caso, tem acesso total ao diretório. O usuário nana é capaz de acessar, visualizar e modificar os arquivos nesse diretório. Os próximos três personagens r-x, indicam que todos os usuários pertencentes ao grupo writers ter permissões de leitura e execução para o diretório. Eles podem mudar para o diretório, executar arquivos e visualizar seu conteúdo. No entanto, como eles não têm permissões de gravação, eles não podem fazer alterações no conteúdo do diretório. Finalmente, os últimos três personagens, r-x, indicam que todos os usuários que não são nana ou não pertença ao grupo writers, leia e execute permissões no diretório.

Como cerca de file? Porque a primeira coluna começa com um -, o arquivo é um arquivo regular, de propriedade do usuário nana e grupo writers, assim como o diretório em nosso exemplo. Os três primeiros personagens rw-, indique que o proprietário leu e gravou o acesso ao arquivo. De acordo com os próximos três personagens, r--, os usuários pertencentes ao grupo writers pode visualizar o arquivo, mas não modificá-lo ou executá-lo. Os últimos três personagens ---, indique que mais ninguém tem acesso ao arquivo.

Da mesma forma, você pode ver otherfile é um arquivo regular e seu proprietário tem acesso total a ele, enquanto todos os outros podem ler e executar o arquivo, mas não modificá-lo.

 

Como definir permissões de arquivo - modo simbólico >

Você pode definir permissões de arquivo com o chmod comando. Tanto o usuário root quanto o proprietário do arquivo podem definir as permissões do arquivo. chmod tem dois modos, simbólico e numérico.

O modo simbólico é muito fácil de lembrar. Primeiro, você decide se define permissões para o usuário (u), o grupo (g), outros (o) ou todos os três (a). Em seguida, você adiciona uma permissão (+), remove-a (-) ou apaga as permissões anteriores e adiciona uma nova (=). Em seguida, você decide se define a permissão de leitura (r), permissão de gravação (w) ou permissão de execução (x). Por último, você dirá chmod quais permissões de arquivo você deseja alterar.

Vamos dar alguns exemplos. Suponha que temos um arquivo regular chamado testfilee o arquivo tem permissões de acesso total para todos os grupos (a listagem de diretórios longos mostraria -rwxrwxrwx como as permissões do arquivo).

Limpe todas as permissões, mas adicione permissão de leitura para todos:
chmod a=r testfile
Após o comando, as permissões do arquivo seriam -r--r--r--

Adicione permissões de execução para o grupo:
chmod g+x testfile
Agora, as permissões do arquivo seriam -r--r-xr--

Adicione permissões de gravação e execução para o proprietário do arquivo. Observe como você pode definir mais de uma permissão ao mesmo tempo:
chmod u+wx testfile
Depois disso, as permissões do arquivo serão -rwxr-xr--

Remova a permissão de execução do proprietário e do grupo do arquivo. Observe, novamente, como você pode definir os dois ao mesmo tempo:
chmod ug-x testfile
Agora, as permissões são -rw-r--r--

Como resumo, dê uma olhada nesta referência rápida para definir as permissões de arquivo no modo simbólico:

Qual usuário?
u usuário / proprietário
g grupo
o de outros
a todos os
O que fazer?
+ adicione esta permissão
- remova esta permissão
= definir exatamente essa permissão
Quais permissões?
r ler
w escrever
x executar

 

Como definir permissões de arquivo - modo numérico >

O outro modo em que chmod pode ser usado é o modo numérico. No modo numérico, as permissões de arquivo não são representadas por caracteres. Em vez disso, eles são representados por um número octal de três dígitos.

= ler (r)
2 = escrever (w)
1 = execute (x)
0 = sem permissão (-)

Para obter os bits de permissão desejados, você adiciona os números de acordo. Por exemplo, as permissões rwx seriam 4 + 2 + 1 = 7, rx seria 4 + 1 = 5 e rw seria 4 + 2 = 6. Como você definiu permissões separadas para o proprietário, grupo e outros, precisará de um número de três dígitos que representa as permissões de todos esses grupos.

Vamos dar um exemplo.
chmod 755 testfile
Isso mudaria o testfilepermissões de para -rwxr-xr-x. O proprietário teria permissões completas de leitura, gravação e execução (7 = 4 + 2 + 1), o grupo teria permissões de leitura e execução (5 = 4 + 1) e o mundo também teria as permissões de leitura e execução .

Vejamos outro exemplo:
chmod 640 testfile
Neste caso, testfileas permissões de seriam -rw-r-----. O proprietário teria permissão de leitura e gravação (6 = 4 + 2), o grupo teria permissão de leitura apenas (4) e os outros não teriam permissão de acesso (0).

O modo numérico pode não ser tão simples quanto o modo simbólico, mas com o modo numérico, você pode definir as permissões de arquivo de maneira mais rápida e eficiente. Essa referência rápida para definir permissões de arquivo no modo numérico pode ajudar:

Qual número?
0 -
1 –X
2 -W-
3 -wx
4 r–
5 rx
6 rw-
7 rwx