Permissões em Linux: não use 777! Saiba porquê…
As distribuições Linux garantem a máxima segurança da informação! No entanto, é necessário que o utilizador domine alguns conceitos fundamentais para garantir essa segurança. Sabe definir corretamente permissões?
No sistema de ficheiros utilizados no SO Linux existem atributos específicos para cada ficheiro/diretoria. Esses atributos, também conhecidos por “permissões, possibilitam ao SO controlar o acesso dos diferentes utilizadores aos ficheiros/diretorias.
Desta forma evita-se que um utilizador possa aceder a conteúdos aos quais não tem privilégios, por serem ficheiros de sistema ou ficheiros de um outro utilizador.
Permissões no Linux: User, Group e Other
As permissões em ficheiros e diretórios estão divididos em 3 patamares:
Para visualizarmos as permissões podemos utilizar o seguinte comando ls -l (ls — comando para listar diretórios e ficheiros e a opção “l” é para podermos visualizar detalhes).
No exemplo, da imagem anterior, temos definidas as seguintes permissões:
- ppinto.dat: permissões totais. Ou seja, leitura, escrita e execução para o dono, grupo e outros (777)
- pplware.txt: Leitura e escrita para o dono, leitura para o grupo e leitura para os outros (644)
- psimoes.doc: Leitura e escrita para o dono e leitura para o grupo (640)
Para alterar/atribuir permissões a um determinado ficheiro /diretório utilizamos o comando chmod
Permissões: Modo máscara binária ou modo octal
A máscara binária é composta por três algarismos arábicos sob a base 8 ou seja de 0 a 7 (daí o nome de modo octal) onde:
- O primeiro dígito representa o dono do ficheiro/diretório (u)
- O segundo dígito representa o grupo (g)
- O terceiro dígito representa os outros (o)
As permissões são especificadas para cada grupo. Os “pesos” atribuídos são:
Vamos considerar então que pretendemos atribuir ao ficheiro pplware a permissão de leitura(4), escrita (2)e execução (1) para o dono do ficheiro, leitura (4) ao grupo e leitura (4) aos outros.
Ora somando os “pesos” temos: para o dono temos 4+2+1=7, relativamente ao grupo temos apenas 4 e o mesmo acontece para os outros. Então, a permissão a atribuir seria 744. Percebido? Numa primeira fase parece confuso, mas depois torna-se bastante simples de configurar.
Exemplos com o modo máscara binária
- chmod 600 pplware> permissões ‘rw‐‐‐‐‐‐‐’
- chmod 755 pplware> permissões ‘rwxr‐xr‐x’
- chmod 777 pplware> permissões ‘rwxrwxrwx’
Modo: “amigável” (com letras)
Para a definição de permissões através do modo “amigável” é necessário recorrer a letras e mais alguns símbolos. Além do que já aprendemos, destaque para os operadores que nos permitem definir uma permissão (‘+’) ou remover uma permissão (‘-).
Exemplo do modo amigável.
Criem o ficheiro pplware através do comando touch, e depois experimentam mudar-lhe as permissões. Para ver as permissões do ficheiro podem usar o comando ls -l pplware
- chmod u+rw pplware — define permissões ‘r/w’(leitura e escrita) ao dono do ficheiro
- chmod o‐rwx pplware — retira todas as permissões aos “outros”
- chmod a+rw pplware — dá permissões ‘r/w’ a todos (ugo)
- chmod go‐r pplware — retira a permissão ‘r’(leitura) ao grupo e outros
Resumindo, no modo amigável usamos letras e na máscara binária usamos um conjunto de três dígitos. Como dica final deixo-vos o comando. Experimentem usar da seguinte forma: stat pplware e depois analisam a informação presente no campo Access.
Como viram definir permissões em Linux não é assim muito difícil. Quem pretender pode também sempre recorrer à interface gráfica.
Esperamos que este tutorial vos seja útil e que pensem duas vezes quando pretenderem definir uma permissão 777.
+1
o 777 pode muito bem ser usado na tua rede local se não estiveres numa empresa até é muito mais prático. Aqui na minha casa ninguém vem cá mexer. Agora numa empresa meter 777 ou mesmo o 755 é abusar da sorte. Aí o 733 ou 622 serão o ideal dependendo do nível da empresa e confiança que se tem nos empregados e não só.
A não ser que a gestão seja feita por uma empresa externa e aí o utilizador “owner” nunca terá permissões de execução (aka root) e aí o 622 será o ideal.
600 não tem lógica nenhuma.
Na empresa temos de tudo, com PAM em cima lógico
Só o trabalho, isso implica ter alguém constantemente a autenticar utilizadores, ou seja, quando a administração é feita a nível interno que só vale a pena em empresas grandes que necessitem de um departamento de informática interno e que tenham mais funções do que autenticar utilizadores LOL
622? Write para terceiros?!
644, não dá para editar aqui no sapo lol
Também meti 733 e ninguém disse nada LOL era 744 😐
Podiam referir o comando “umask” que permite definir por defeito que acessos são dados para uma novo ficheiro.
O Linux é complicado e limita o acesso do utilizador, não admira que com este cinto de castidade manter-se seguramente virgem!
Boa publicação Pplware. Numa altura em que o “amigo americano” quer deixar de o ser, nunca se sabe se o Linux, ou algum outro sistema criado com base nele será o futuro dos SO ir estas bandas
Mas isto das permissões é 20% daquilo que se pode fazer em permissões de pastas. Pode-se adicionar utilizadores a grupos com mais permissões e nessas pastas dos grupos esses utilizadores têm certas permissões e fora dessas pastas deixam de ter.
E ainda há mais coisas interessantes que se podem fazer como o ssh em que podemos fazer updates remotamente sem que os utilizadores saibam ou notem.
Com este artigo acho que quem não sabe ficou sem saber, porque ao contrario do que o titulo dá a entender, nunca é explicado porque é que não se deve usar 777. Por isso vou tentar explicar porque acho que sei o que o artigo quer dizer: (aqui estou a falar das permisões de utilizadores do sistema operativo e não apenas de permisões para ficheiros especificos) em qualquer sistema um utilizador comum, nem sequer o administrador, devem ter acesso total a todos os ficheiros. Isto evita que pessoal mal intencionado possa logar com a conta de um utilizador especifico e fazer as alterações/instalar o que quiser, o que é uma via verde para dados serem roubados ou o sistema comprometido. Isto é verdade também para a instalação de aplicações, se um utilizador com todas as permissões de sistema instalar malware, como por exemplo ramsomware, o programa mal intencionado terá sucesso visto que o utilizador tem todas as permissões de acesso a ficheiros e o malware foi instalado em seu nome.
Isto explica porque é que em Linux é necessário usar o comando sudo (super user do) quando se quer fazer alterações importantes ou instalar software, porque os utilizadores comuns não são administradores (mais uma vez: nunca devem ser), o que proteje o sistema porque garante que quem está a tentar fazer alterações sabe a password necessária e é alguém de confiança.
Isto normalmente funciona ao nível de permissões de utilizador mas o artigo é sobre ficheiros especificos, neste caso é sobre das permissões de leitura, escrita e execução a um unico ficheiro e aqui o problema repete-se, se qualquer utiizador pode alterar um ficheiro então podem transforma-lo em malware e executar o dito. E isto é a razão pela qual nunca se deve usar 777.
Peço desculpa pela grande confusão mas acho que dá para perceber a minha ideia
com 777 é permissões para tudo e todos 😀