Entender as permissões e propriedades de arquivos no Linux é essencial para garantir a segurança e a funcionalidade adequada do sistema. Nesta aula, vamos explorar como o sistema de permissões funciona, como alterar permissões e propriedades, e como usar esses conceitos para proteger seus arquivos e diretórios.
Sistema de Permissões no Linux
No Linux, cada arquivo e diretório tem permissões associadas a três categorias de usuários: o proprietário, o grupo e outros (todos os demais usuários). Essas permissões determinam quem pode ler, escrever ou executar o arquivo/diretório.
Tipos de Permissões
- Leitura (r): Permite visualizar o conteúdo do arquivo ou listar o conteúdo do diretório.
- Escrita (w): Permite modificar o conteúdo do arquivo ou fazer alterações no diretório (criar, remover arquivos).
- Execução (x): Permite executar o arquivo como um programa ou acessar o diretório.
Representação das Permissões
As permissões são representadas por um conjunto de caracteres. Por exemplo, considere a saída do comando ls -l
:
$ ls -l
-rw-r--r-- 1 usuario grupo 4096 mai 18 10:00 arquivo.txt
O conjunto de caracteres -rw-r--r--
pode ser dividido da seguinte forma:
- O primeiro caractere indica o tipo de arquivo (
-
para arquivo regular,d
para diretório). - Os próximos três caracteres (
rw-
) representam as permissões do proprietário. - Os três caracteres seguintes (
r--
) representam as permissões do grupo. - Os últimos três caracteres (
r--
) representam as permissões de outros.
Alterando Permissões com chmod
O comando chmod
(change mode) é usado para alterar as permissões de arquivos e diretórios. Ele pode ser usado em dois modos: simbólico e numérico.
Modo Simbólico
No modo simbólico, você usa letras para representar as permissões:
u
: Usuário (proprietário)g
: Grupoo
: Outrosa
: Todos (usuário, grupo e outros)
Operadores:
+
: Adiciona permissão-
: Remove permissão=
: Define permissão
$ chmod u+x script.sh
# Adiciona permissão de execução para o proprietário
$ chmod g-w arquivo.txt
# Remove permissão de escrita para o grupo
$ chmod o=r arquivo.txt
# Define permissão de leitura para outros
Modo Numérico
No modo numérico, você usa valores octais para representar as permissões:
4
: Leitura2
: Escrita1
: Execução
Os valores são somados para definir as permissões desejadas:
$ chmod 755 script.sh
# Define permissões rwxr-xr-x para script.sh
Propriedades de Arquivos com chown
e chgrp
Além das permissões, cada arquivo e diretório tem um proprietário e um grupo associado. Os comandos chown
e chgrp
são usados para alterar essas propriedades.
Comando chown
O comando chown
(change owner) altera o proprietário de um arquivo ou diretório. Você pode especificar o novo proprietário e, opcionalmente, o novo grupo.
$ sudo chown novo_usuario arquivo.txt
# Altera o proprietário de arquivo.txt para novo_usuario
$ sudo chown novo_usuario:novo_grupo arquivo.txt
# Altera o proprietário e o grupo de arquivo.txt
Comando chgrp
O comando chgrp
(change group) altera o grupo de um arquivo ou diretório.
$ sudo chgrp novo_grupo arquivo.txt
# Altera o grupo de arquivo.txt para novo_grupo
Exemplos Práticos
Vamos ver alguns exemplos práticos de uso desses comandos para configurar permissões e propriedades de arquivos e diretórios.
Exemplo 1: Configurando Permissões de um Script
Imagine que você tem um script chamado backup.sh
que precisa ser executado por todos os usuários, mas editado apenas pelo proprietário.
- Crie o arquivo:
$ touch backup.sh
- Defina as permissões:
$ chmod 755 backup.sh
- Verifique as permissões:
$ ls -l backup.sh
-rwxr-xr-x 1 usuario grupo 0 mai 18 10:00 backup.sh
Exemplo 2: Configurando um Diretório Compartilhado
Suponha que você deseja criar um diretório compartilhado onde todos os usuários do grupo projetos
possam ler, escrever e executar arquivos.
- Crie o diretório:
$ sudo mkdir /projetos
- Altere o grupo:
$ sudo chown :projetos /projetos
- Defina as permissões:
$ sudo chmod 2775 /projetos
A permissão 2775
configura o “setgid” (bit de ID do grupo) no diretório, o que garante que novos arquivos e subdiretórios herdarão o grupo do diretório pai.
- Verifique as permissões:
$ ls -ld /projetos
drwxrwsr-x 2 root projetos 4096 mai 18 10:00 /projetos
Permissões Especiais
O Linux também possui permissões especiais que podem ser aplicadas a arquivos e diretórios: SUID, SGID e Sticky Bit.
SUID (Set User ID)
Quando aplicada a um arquivo executável, a permissão SUID (s
) permite que o arquivo seja executado com as permissões do proprietário do arquivo, e não do usuário que o executa.
$ sudo chmod u+s arquivo_executavel
SGID (Set Group ID)
Quando aplicada a um diretório, a permissão SGID (s
) garante que novos arquivos e subdiretórios herdem o grupo do diretório pai.
$ sudo chmod g+s diretorio
Sticky Bit
Quando aplicada a um diretório, a permissão Sticky Bit (t
) impede que usuários comuns excluam ou renomeiem arquivos de outros usuários no diretório.
$ sudo chmod +t /diretorio_publico
Compreender e gerenciar permissões e propriedades de arquivos no Linux é crucial para a administração de sistemas e segurança. Nesta aula, vimos como usar chmod
, chown
e chgrp
para configurar permissões e propriedades. Também exploramos permissões especiais que fornecem maior controle sobre arquivos e diretórios.
Pratique esses comandos no seu próprio sistema Linux para ganhar confiança e familiaridade. Se tiver dúvidas ou sugestões, deixe um comentário no blog NerdExpert.com.br. Na próxima aula, abordaremos o gerenciamento de processos no Linux.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.