Neste tutorial, vamos aprender sobre como conceder ou restringir permissões de acesso a arquivos e diretórios no Linux.
Curso Linux : Básico
🎦 Módulo 08 : Aula 29 : Como conceder ou restringir permissões de acesso a arquivos e diretórios no Linux 💻🐧🔐 [Canal Web Mundi.com + XP IT Cursos]
Criando arquivos e diretórios para o Laboratório : Exercício Prático : Concessão ou Restrição permissões Linux
Então vamos lá, primeiramente, antes de tratarmos do assunto permissões, precisamos criar um laboratório para nossos exercícios práticos, assim fica mais fácil entender os conceitos de permissões Linux. Então bora pra mão na massa!
Já tô aqui no terminal do Linux, prontíssimo para começar.
Então, primeiro passo: criar o diretório “empresa” a partir do diretório raiz (ou /).
Por isso, vamos aos comandos:
whoami
cd /
sudo mkdir empresa
cd empresa/
ls -lha
Em síntese, perceba que eu executei o comando “whoami” para mostrar que estou logado como usuário “webmundi”.
Como esse usuário não tem permissões no diretório raiz, eu usei o comando “sudo” no comando “mkdir” para criar o diretório “empresa”.
em seguida, mudei o diretório para “empresa” e executei o comando “ls -lha”.
Resultado do comando:
webmundi@webmundi-VirtualBox:/empresa$ ls -lha
total 8,0K
drwxr-xr-x 2 root root 4,0K mar 2 17:01 .
drwxr-xr-x 22 root root 4,0K mar 2 17:01 ..
Note que o dono e o grupo do diretório estão definidos como “root”.
Ou seja, o dono tem permissões de “rwx” ou octal 7, o grupo tem permissões de leitura e execução (“r-x” ou octal 5) e os demais usuários têm permissões de leitura e execução (“r-x” ou octal 5), formando a representação octal 755.
Mas, como a gente quer criar mais diretórios e arquivos, vamos continuar:
Então, vou tentar usar o comando “mkdir” para criar um diretório com o usuário “webmundi”:
mkdir financas
Porém, o Linux me devolveu um erro:
mkdir: não foi possível criar o diretório “financas”: Permissão negada
Isso acontece porque o usuário “webmundi” não tem permissões para criar ou escrever dentro do diretório “/empresa”.
Ele NÃO faz parte do grupo “root”, então segue a regra de permissão para demais usuários com permissões de leitura e execução (“r-x” ou octal 5).
E neste caso, mesmo que ele estivesse no grupo “root”, não conseguiria criar o diretório, pois a permissão para o grupo “root” também é 5, ou seja, leitura e execução.
Portanto, para continuarmos a criação do laboratório, temos que usar o “sudo”:
sudo mkdir financas
sudo touch financas/financas.txt
sudo mkdir contabil
sudo touch contabil/contabil.txt
sudo mkdir vendas
sudo touch vendas/vendas.txt
ls -lha
Antes de tudo, repare que tenho que usar o “sudo” para elevar os privilégios para “root” e a partir daí efetuar as criações dos arquivos e diretórios de nosso lab.
Resultado dos comandos:
webmundi@webmundi-VirtualBox:/empresa$ mkdir financas
mkdir: não foi possível criar o diretório “financas”: Permissão negada
webmundi@webmundi-VirtualBox:/empresa$ sudo mkdir financas
webmundi@webmundi-VirtualBox:/empresa$ sudo touch financas/financas.txt
webmundi@webmundi-VirtualBox:/empresa$ sudo mkdir contabil
webmundi@webmundi-VirtualBox:/empresa$ sudo touch contabil/contabil.txt
webmundi@webmundi-VirtualBox:/empresa$ sudo mkdir vendas
webmundi@webmundi-VirtualBox:/empresa$ sudo touch vendas/vendas.txt
webmundi@webmundi-VirtualBox:/empresa$ ls -lha
total 20K
drwxr-xr-x 5 root root 4,0K mar 2 21:40 .
drwxr-xr-x 21 root root 4,0K mar 2 21:39 ..
drwxr-xr-x 2 root root 4,0K mar 2 21:40 contabil
drwxr-xr-x 2 root root 4,0K mar 2 21:40 financas
drwxr-xr-x 2 root root 4,0K mar 2 21:41 vendas
Usuários do laboratório : Concessão / Restrição de acesso Linux
Beleza, agora vamos adicionar os usuários nos seus respectivos grupos para realizar as atividades do laboratório.
Dessa forma, temos o Bruno, que faz parte do departamento contábil, o Fernando do departamento financeiro e o Mário do departamento de vendas.
Para mostrar o funcionamento de concessão de permissões, vamos utilizar os usuários que criamos na aula de criação de usuários e grupos – Aulas 24 a 27 deste curso.
Usuários criados que serão utilizados nos exemplos
bruno – departamento: contabil
fernando – departamento: financeiro
mario – departamento: vendas
listar grupos de usuários do Linux
Já vimos em outras aulas, que para verificar todos os grupos disponíveis no sistema, podemos executar o comando:
awk -F ':' '{print $1}' /etc/group
Desse modo, para adicionar os usuários nos seus grupos correspondentes, podemos utilizar o comando usermod -G
seguido do nome do grupo e do usuário que será adicionado. Por exemplo:
sudo usermod -G contabil bruno
sudo usermod -G financeiro fernando
sudo usermod -G vendas mario
Pronto! Finalmente, estamos com os usuários nos seus respectivos grupos e podemos continuar com as atividades do laboratório!
Listando Permissões no Linux
É possível ver as permissões de um arquivo ou diretório usando o comando ls -l
.
Isso mostrará uma lista de arquivos e diretórios com as permissões atuais em formato de linha única.
cd /empresa/
ls -l
Como alterar de permissões de arquivos e diretórios no Linux
Agora que criamos os arquivos e diretórios e adicionamos os usuários aos grupos correspondentes, vamos aprender a como alterar as permissões dos arquivos e diretórios no Linux.
Para realizar essa tarefa, utilizamos o comando chmod
. Com ele, podemos conceder ou remover permissões de leitura, escrita e execução para o proprietário do arquivo, o grupo do usuário proprietário ou para outros usuários.
Em seguida, vamos ver um exemplo prático, onde vamos conceder permissão de leitura e escrita somente para o proprietário e permissão de leitura para os demais usuários no arquivo financas.txt
que criamos anteriormente.
Primeiramente, precisamos navegar até o diretório onde o arquivo está localizado. No nosso caso, é o diretório financas
. Podemos utilizar o comando cd
para mudar para esse diretório:
cd /empresa/financas
ls -lha
Agora, podemos utilizar o comando chmod
para alterar as permissões do arquivo.
A sintaxe básica do comando é:
chmod <permissões> <arquivo ou diretório>
Representação Octal nas permissões Linux
As permissões podem ser representadas de diferentes formas, mas a mais comum é a representação em octal, onde cada permissão é representada por um número de 0 a 7.
Assunto que já tratamos em nossa última aula.
Resumindo:
- O número 0 representa a ausência de permissão
- O número 1 representa a permissão de execução
- O número 2 representa a permissão de gravação
- O número 4 representa a permissão de leitura.
- E uma novidade que não comentei na última aula é que para conceder mais de uma permissão, basta somar os números correspondentes. Por exemplo: Se quero liberar permissão de leitura que é o octal 4 e gravação que é o octal 2, então 4+2 = 6, então 6 é o octal que representa Leitura e Gravação
Exemplos práticos de utilização chmod : Linux
Em seguida, em nosso exemplo, vamos conceder permissão de leitura e escrita para o proprietário (usuário fernando
) e permissão somente de leitura para os demais usuários.
Para isso, podemos utilizar a representação octal 644, onde :
- o primeiro número (6) representa as permissões do proprietário
- o segundo número (4) representa as permissões do grupo
- e o terceiro número (4) representa as permissões dos demais usuários.
Pronto. Finalmente o arquivo financas.txt
tem as permissões que definimos. O proprietário pode ler e escrever no arquivo, enquanto os demais usuários podem somente ler.
Agora testar as permissões do usuário fernando, ou seja, vamos dar um rolê com os nossos amigos do departamento financeiro!
Primeiro, vamos entrar no usuário Fernando com o comando “su fernando” e editar o arquivo financas.txt com o editor “nano”.
su fernando
nano /empresa/financas/financas.txt
No arquivo, vou digitar:
Se inscreva no canal!
E vou salvar o arquivo com esta mensagem subliminar…
Mas peraí, deu ruim!
[ Erro ao escrever /empresa/financas.txt: Permissão negada ]
A gente não tem permissão pra gravar no arquivo. Que chato, né?
Um texto bonito desse e vamos ter que abandonar o arquivo…
De volta pro terminal, vamos mudar as permissões do arquivo financas.txt, alterando o privilégio do grupo para leitura e gravação.
su webmundi
sudo chmod 664 /empresa/financas/financas.txt
Agora sim, bora editar novamente com aquela mensagem subliminar !
su fernando
nano /empresa/financas/financas.txt
Digitar : Se inscreva no canal e ative o sino para novos vídeos !!!
Ah, não acredito! Continua dando erro!
[ Erro ao escrever /empresa/financas/financas.txt: Permissão negada ]
Mesmo alterando as permissões para o grupo poder ler e gravar (Octal 6), o arquivo e o diretório não pertencem ao grupo financeiro.
Dá pra ver isso com o comando “ls -l”.
O grupo ainda é root e o usuário fernando é do grupo financeiro
Por isso, vamos mudar o grupo do diretório financeiro com o comando
Sintaxe
chgrp grupo arquivo
su webmundi
sudo chgrp financeiro /empresa/financas/financas.txt
ls -l
Beleza, agora deu certo!
Olha só como o grupo do diretório agora é financeiro.
Então, vamos editar o arquivo pela última vez e deixar uma mensagem de arromba:
su fernando
nano /empresa/financas/financas.txt
Vamos digitar
Se inscreva no canal e ative o sino para novos vídeos !!!
Elaborar este lab deu trabalho, se puder apoie o canal com aquele PIX maroto! Beleza?!
Assim você ajuda mais pessoas a aprenderem Linux !
vamos salvar o arquivo…
E, ufa, agora sim, o arquivo foi salvo com sucesso!
cat financas.txt
Mais Exemplos : uso de chmod e chgrp
Vamos dar uma olhada em alguns exemplos práticos para mostrar como conceder e restringir permissões para diferentes usuários e grupos.
Por exemplo, se você quiser dar permissão de leitura, gravação e execução para o proprietário, mas só permissão de leitura e execução para outros usuários em um diretório chamado “contabil”, você pode usar o comando “chmod 755” e “chgrp contabil” para definir essas permissões.
su webmundi
cd /empresa/contabil
sudo chmod 755 /empresa/contabil
sudo chgrp contabil /empresa/contabil
cd ..
ls -l
Restringir acesso com chmod Linux
Por outro lado, se você quiser restringir o acesso a um arquivo ou diretório para o proprietário, pode usar o comando “chmod 700” para remover todas as permissões de acesso para outros usuários e grupo.
cd /empresa/vendas
sudo chmod 700 /empresa/vendas/vendas.txt
ls -l
cd ..
sudo chmod 700 vendas
ls -l
Permissão 660
Assim como no comando a seguir, podemos conceder permissão de leitura e gravação para o proprietário e grupo vendas :
sudo chmod 660 /empresa/vendas/vendas.txt
sudo chgrp vendas /empresa/vendas/vendas.txt
ls -l /empresa/vendas/vendas.txt
sudo ls -l /empresa/vendas/vendas.txt
Vale lembrar que como o diretório vendas esta restrito aos demais usuários para conseguir exibir informações pelo ls, tenho que usar o comando sudo
Permissão 775
Da mesma forma, no comando a seguir, vamos conceder permissão de leitura, gravação e execução para o proprietário e grupo e leitura e execução para outros usuários :
cd /empresa
sudo chmod 775 /empresa/contabil
sudo chgrp contabil /empresa/contabil
ls -l /empresa/contabil
ls -l
Permissão 700
Por outro lado, podemos remover todas as permissões de acesso para outros usuários e grupo, deixando acesso total somente para o dono (owner):
cd /empresa
sudo chmod 700 /empresa/financas/financas.txt
ls -l /empresa/financas
sudo chmod 700 /empresa/financas
ls -l
A importância da gestão de permissões de acessos : Linux
Bom agora você já sabe como conceder e restringir permissões no Linux.
Mas cuidado! Conceder permissões excessivas pode comprometer a segurança do sistema, enquanto restringir permissões demais pode impedir que os usuários façam o que precisam fazer. Então, fique atento ao ajustar as permissões de acordo com as necessidades específicas do usuário e do sistema.
Como Alterar o dono (owner) de um arquivo ou diretório no Linux
Como vimos em aulas anteriores, o dono é o usuário que criou o arquivo ou diretório e tem controle total sobre ele.
Agora vamos aprender como mudar o dono (owner) de um arquivo ou diretório no Linux.
O dono é o usuário que criou o arquivo ou diretório e tem controle total sobre ele. Mas às vezes é necessário mudar o dono de um arquivo ou diretório para outro usuário, seja por motivos de segurança ou para dar acesso a outras pessoas.
Para alterar o dono ou o grupo de um arquivo ou diretório usamos o comando chown
.
Sintaxe comando chown : Linux
A sintaxe geral do comando chown
no Linux é a seguinte:
chown [opções] usuário[:grupo] arquivo(s)
Onde:
-
[opções]
são as opções que podem ser usadas com o comandochown
. Algumas das opções comuns sãoR
para alterar o dono e o grupo recursivamente em um diretório e seus subdiretórios, ev
para exibir mensagens de status verbosas; -
usuário
é o novo dono do arquivo ou diretório; -
grupo
é o novo grupo do arquivo ou diretório (opcional). Se não for especificado, o grupo será alterado para o grupo primário do novo usuário; -
arquivo(s)
é o nome do arquivo ou diretório a ser modificado.
Exemplos de utilização do chown : Linux
Por exemplo, o comando a seguir altera o dono do arquivo contabil.txt
para o usuário bruno e o grupo para vendas.
sudo chown bruno:vendas /empresa/contabil/contabil.txt
ls -l /empresa/contabil/contabil.txt
Já o comando
sudo chown -R fernando:contabil /empresa/vendas
ls -l /empresa/vendas
sudo ls -l /empresa/vendas
Altera o dono e o grupo de todos os arquivos e subdiretórios dentro da pasta vendas para o usuário fernando e o grupo contabil
, de forma recursiva, ou seja todos arquivos e subdiretórios dentro do diretório vendas.
Por exemplo, para alterar o dono de um arquivo chamado contabil.txt para o usuário mario , você pode usar o comando:
cd /empresa/contabil
ls -l
sudo chown mario /empresa/contabil/contabil.txt
ls -l /empresa/contabil/contabil.txt
Para alterar o grupo do arquivo chamado financas.txt para o grupo financeiro, você pode usar o comando:
cd /empresa/financas
sudo ls -l /empresa/financas
sudo chgrp financeiro /empresa/financas/financas.txt
sudo ls -l /empresa/financas
Permissões 777 : Liberou Geral no Linux !
Liberar acesso total ao diretório empresa, recursivamente em todos arquivos e diretórios:
sudo chmod -R 777 /empresa
ls -l /empresa
Observe que esses comandos só podem ser executados pelo dono do arquivo ou por um usuário com privilégios de administrador.
Como Remover Permissões com o comando umask no Linux
Além disso, existe um comando sagaz chamado umask
que permite remover algumas permissões de arquivos e diretórios criados por você?
Isso mesmo, com ele você pode garantir a segurança do sistema e evitar permissões excessivas acidentais.
Com o umask
você indica um valor numérico que especifica quais permissões devem ser removidas dos arquivos e diretórios criados por um usuário.
Quando um usuário cria um arquivo ou diretório, as permissões padrão são aplicadas a ele, mas o umask
é usado para remover algumas dessas permissões.
Para verificar a máscara de permissão padrão atual, digite só umask
no terminal.
umask
Resultado
webmundi@webmundi-VirtualBox:/empresa/financas$ umask
0002
Sintaxe umask
A sintaxe do umask é bastante simples: basta digitar “umask” seguido do valor numérico que você deseja definir para a máscara de permissão.
Esse valor é um número octal de três dígitos, que representa as permissões de acesso do arquivo ou diretório.
O umask
é especificado como um número octal, com os mesmos três dígitos que são usados para representar as permissões de acesso. Cada dígito octal pode ter um dos seguintes valores:
-
0
: não remove nenhuma permissão -
1
: remove a permissão de execução -
2
: remove a permissão de escrita -
3
: remove as permissões de execução e escrita -
4
: remove a permissão de leitura -
5
: remove as permissões de leitura e execução -
6
: remove as permissões de leitura e escrita -
7
: remove todas as permissões
Mas calma, não precisa ficar assustado com esses números octais e dígitos estranhos.
Vou explicar de um jeito bem fácil: cada número corresponde a uma permissão que pode ser removida.
umask 022
Por exemplo, se você define o umask
como 022
, todas as permissões de escrita são removidas.
su fernando
umask 022
umask
touch /empresa/financas/novo-financas.txt
ls -l /empresa/financas/novo-financas.txt
Isso significa que o proprietário do arquivo pode ler e escrever nele, mas o grupo e outros usuários só podem ler. Bacana, né?
umask 077
Mas e se você quiser criar um arquivo com permissões ainda mais restritas?
Fácil, use o comando
umask 077
umask
touch /empresa/financas/extrato.txt
ls -l /empresa/financas/extrato.txt
Assim, sempre que criar um novo arquivo, apenas o proprietário poderá ler e escrever nele.
Existe também o umask 133 é uma configuração que remove a permissão de escrita do grupo para qualquer arquivo criado pelo usuário atual.
Isso significa que, quando um usuário cria um novo arquivo, ele terá permissões de leitura e escrita para o proprietário do arquivo e para o grupo do proprietário, mas apenas permissões de leitura para todos os outros usuários.
Vamos ver alguns exemplos de como a umask 133 funciona na prática:
Suponha que o usuário atual seja “fernando” e ele esteja no grupo “financeiro”.
Se o fernando criar um novo arquivo com a umask 133 configurada, o arquivo terá as seguintes permissões:
- Proprietário: leitura e escrita
- Grupo: leitura
- Todos os outros usuários: leitura
Isso significa que apenas o fernando poderá ler e escrever no arquivo normalmente, enquanto outros usuários no grupo “financeiro” poderão ler o arquivo, mas não poderão modificá-lo.
E todos os outros usuários no sistema também poderão ler o arquivo, mas não poderão modificá-lo.
vamos a uma exemplo:
Vou colocar o mario no grupo do fernando, somente para mostrar que não basta, ele ser do grupo do usuário tem que ter permissões.
su webmundi
sudo usermod -G fernando mario
cd /empresa/financas/
ls -l
Agora, vamos usar o usuário fernando para mostrar o funcionamento do umask 133
su fernando
umask 133
umask
touch /empresa/financas/trabalho-individual.txt
ls -l /empresa/financas/
su mario
nano /empresa/financas/trabalho-individual.txt
umask e níveis de segurança
O comando umask pode ser usado para definir diferentes níveis de segurança da seguinte forma:
valor umask | Nível de segurança | Permissão efetiva (diretório) |
---|---|---|
022 | Permissivo | 755 |
026 | Moderado | 751 |
027 | Moderado | 750 |
077 | Restritivo | 700 |
E aí, gostou de aprender sobre o umask, liberação ou restrição de acesso no Linux
?
Agora você tá pronto pra ser o rei (ou a rainha) da segurança no Linux!
Brincadeiras a parte, espero que você tenha aprendido muito neste tutorial.
Deixe suas opiniões e dúvidas nos comentários ou em nossos grupos no Facebook.
Apreciou o nosso conteúdo de qualidade? Doe agora via Pix para manter nossos vídeos e site!
Você se sente renovado e cheio de novos conhecimentos após visitar nosso site e canal?
Então, imagine o impacto positivo que sua doação através do PIX pode ter em nossa produção de conteúdo.
Juntos, podemos fazer muito mais e ainda melhor!
Mas se você não pode contribuir financeiramente, não se preocupe.
A sua participação nas redes sociais e conversas com amigos também são valiosas para nós.
Compartilhe o nosso conteúdo de qualidade e ajude-nos a continuar a oferecer informações úteis e inspiradoras gratuitamente.
Não perca a chance de fazer parte da nossa comunidade de aprendizado e crescimento.
Seja por meio de uma doação ou compartilhamento, sua ajuda é sempre bem-vinda e valorizada.
Clique agora e faça sua parte na manutenção de nosso conteúdo de qualidade!