Skip to content

Instantly share code, notes, and snippets.

@bsshenrique
Last active May 30, 2024 21:21
Show Gist options
  • Save bsshenrique/b5203d360ca340d2fcdcc0f66f401da8 to your computer and use it in GitHub Desktop.
Save bsshenrique/b5203d360ca340d2fcdcc0f66f401da8 to your computer and use it in GitHub Desktop.
Permissões no Linux

Permissões

Entendendo as permissões

Uma boa maneira para entender as permissões no Linux é ter contato com elas utilizando o comando ls -lh.

Ao usar o comando, o output será algo como:

-rw-r--r-- 1 usuario grupo 12K mai 20 00:00 file.txt

E ele pode ser entendido da seguinte forma:

Primeira coluna:
T UUU GGG OOO
| ||| ||| |||
| ||| ||| +++- Permissões para OUTROS usuários
| ||| +++----- Permissões para o GRUPO
| +++--------- Permissões para o USUÁRIO dono
+------------- Tipo

Cada PERMISSÃO pode assumir o valor de:
r read
w write
x execution
- none

Já quanto o TIPO, os valores mais comuns são:
d diretório
- arquivo "qualquer"

A segunda coluna é entendida como a quantidade de links ao arquivo/diretório
As outras colunas são bem representativas, não vou detalhar para evitar criar um artigo muito longo

Caso queira ver outros tipos que podem ser listados confira a Wiki do Arch Linux.

Logo, detalhando a primeira coluna de file.txt:

- rw- r-- r--
| ||| ||| |||
| ||| ||| +++- Outros usuários têm permissão de leitura
| ||| +++----- Usuários no grupo têm permissão de leitura
| +++--------- O dono tem permissão de leitura e escrita
+------------- É um arquivo comum

Alterando permissões

Permissões podem ser alteradas utilizando o comando change mode, chmod.

Utilizando o formato simbólico

Exemplo:
$ chmod <usuario><operador><permissao> <arquivo>

Os valores aceitos em cada um dos itens acima podem ser:

<usuario>     u user  | g group   | o others  | a all  
<operador>    + add   | - remove  | = define  |
<permissao>   r read  | w write   | x execute |

Exemplos:

# Considerando que exista um arquivo file com as permissões:
# -rw-r--r--

chmod u+x file	# -rwxr--r--
chmod g+x file	# -rwxr-xr--
chmod a-x file	# -rw-r--r--

Utilizando a base octal

É possível também usar a base octal para alterar permissões.

Permissão   Octal   Binário
-           0       000
--x         1       001
-w-         2       010
-wx         3       011
r–          4       100
r-x         5       101
rw-         6       110
rwx         7       111

Acho desnecessário decorar a permissão e a sua correspondência em base octal, é muito mais fácil associar a permissão pela contagem de bits.

Exemplos:

# Considerando que exista um arquivo file com as permissões:
# -rw-r--r--

chmod 100 file  # ---x------
chmod 010 file  # ------x---
chmod 644 file  # -rw-r--r--
chmod 755 file  # -rwxr-xr-x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment