---
# System prepended metadata

title: Permissões
tags: [devops, day1]

---


# Permissões

cada arquivo e diretório tem suas próprias configurações de permissões. Essas permissões basicamente determinam quem pode fazer o quê com o arquivo. Existem três tipos principais de permissões: leitura (read), escrita (write) e execução (execute).

1. **Leitura (Read):**
    
    - Se um arquivo tem permissão de leitura, isso significa que você pode visualizar o conteúdo do arquivo. Se é um diretório, você pode ver quais arquivos estão dentro dele.
2. **Escrita (Write):**
    
    - Se um arquivo tem permissão de escrita, você pode modificar seu conteúdo. Em um diretório, permissão de escrita permite adicionar, remover ou renomear arquivos.
3. **Execução (Execute):**
    
    - Para arquivos, a permissão de execução permite que você o execute como um programa. Para diretórios, a permissão de execução permite acessar o conteúdo do diretório.

Agora, como isso se parece quando você olha para as permissões?

- As permissões são divididas em três grupos: usuário dono (owner), grupo e outros (others).
- Cada grupo tem suas próprias configurações de leitura, escrita e execução.

Por exemplo, se você vê algo como "rw-r--r--":

- O dono (usuário) tem permissão de leitura (r) e escrita (w), mas não de execução (-).
- O grupo tem permissão de leitura, mas não de escrita ou execução.
- Outros (quem não é o dono nem está no grupo) também têm permissão de leitura, mas não de escrita ou execução.

Você pode mudar essas permissões usando o comando `chmod` e ver as permissões com o comando `ls -l`.

As permissões podem ser representadas de duas maneiras: a textual (rw-) que acabamos de discutir e a numérica. Na representação numérica, cada tipo de permissão tem um valor associado:

- **Leitura (Read):** Representada por 4.
- **Escrita (Write):** Representada por 2.
- **Execução (Execute):** Representada por 1.

Agora, podemos usar esses valores para entender e configurar permissões mais facilmente. Vamos pegar o exemplo "rw-r--r--" novamente:

- O dono (usuário) tem permissão de leitura (4) e escrita (2), totalizando 6 (4 + 2). Adicionando permissão de execução (1), ficaria 7.
- O grupo tem permissão de leitura (4), totalizando 4 (4 + 0 + 0).
- Outros (quem não é o dono nem está no grupo) têm permissão de leitura (4), totalizando 4 (4 + 0 + 0).

Então, em representação numérica, "rw-r--r--" seria "764".

Agora, se quisermos adicionar permissão de execução ao grupo e outros, podemos modificar para "rwxr-xr--", que em representação numérica seria "755" (7 para o dono, 5 para grupo e 5 para outros).

Para aplicar essas alterações, você pode usar o comando `chmod` assim:

```console
$ chmod 755 nome_do_arquivo
```

Esse comando concede permissão total ao dono (7), permissão de leitura e execução ao grupo (5) e permissão de leitura e execução a outros (5).

Se você quiser remover a permissão de execução de um arquivo ou diretório, você pode usar o comando `chmod` com o argumento "-x". Vamos considerar o exemplo anterior "rwxr-xr--", que em representação numérica seria "755".

Se quisermos remover a permissão de execução do grupo e outros, transformando isso em "rw-r--r--" (ou "644" em representação numérica), podemos usar o comando a seguir:

bash

`chmod go-x nome_do_arquivo`

Neste comando:

- "go" refere-se ao grupo (group) e outros (others).
- "-x" remove a permissão de execução.

Dessa forma, o comando acima removerá a permissão de execução do grupo e outros, mantendo apenas as permissões de leitura e escrita.

Lembre-se de que o dono (usuário) não é afetado pelo "go", então as permissões dele permanecerão inalteradas.

![permissions](https://hackmd.io/_uploads/rkj6Nl69T.jpg)
