You are on page 1of 11

https://www.infowester.com/linuxpermissoes.

php

Entendendo e usando permissões no Linux
Introdução
As permissões são um dos aspectos mais importantes do Linux (na verdade, de todos os
sistemas baseados em Unix). Elas são usadas para vários fins, mas servem principalmente
para proteger o sistema e os arquivos dos usuários. Manipular permissões é uma atividade
interessante, mas complexa ao mesmo tempo. Mas tal complexidade não deve ser
interpretada como dificuldade e sim como possibilidade de lidar com uma grande variedade
de configurações, o que permite criar vários tipos de proteção a arquivos e diretórios.
Como você deve saber, somente o super-usuário (root) tem ações irrestritas no sistema,
justamente por ser o usuário responsável pela configuração, administração e manutenção do
Linux. Cabe a ele, por exemplo, determinar o que cada usuário pode executar, criar,
modificar, etc. Naturalmente, a forma usada para especificar o que cada usuário do sistema
pode fazer é a determinação de permissões. Sendo assim, neste artigo você verá como
configurar permissões de arquivos e diretórios, assim como modificá-las.

Entendendo as permissões
drwx------ ... 2 wester ............. 512 Jan ... 29 23:30 .. Arquivos/
-rw-rw-r-- ... 1 wester ....... 280232 Dec .. 16 22:41... notas.txt
As linhas acima representam um comando digitado (ls -l) para listar um diretório e suas
permissões. O primeiro item que aparece em cada linha (drwx----- e -rw-rw-r-) é a forma
usada para mostrar as permissões do diretório Arquivos e do arquivo notas.txt. É esse item,
que recebe o nome de string, que vamos estudar. Um ponto interessante de citar é que o
Linux trata todos os diretórios como arquivos também, portanto, as permissões se aplicam
de igual forma para ambos. Tais permissões podem ser divididas em quatro partes para
indicar: tipo, proprietário, grupo e outras permissões. O primeiro caractere da string indica o
tipo de arquivo: se for "d" representa um diretório, se for "-" equivale a um arquivo.
Entretanto, outros caracteres podem aparecer para indicar outros tipos de arquivos,
conforme mostra a tabela abaixo:
d => diretório
b => arquivo de bloco
c => arquivo especial de caractere
p => canal
s => socket
- => arquivo "normal"
Repare agora que no restante da string ainda há 9 caracteres. Você já sabe o que significa o
primeiro. Os demais são divididos em três grupos de três, cada um representado o

No caso. gravá-lo.=> significa permissão desabilitada. nem executá-lo (---).... desconsiderando o primeiro caractere e dividindo a string restante em 3 partes.. do que adianta o usuário ter permissão de gravação se ele não tem permissão de leitura habilitada? Agora que já sabemos o significado das divisões da string.os demais usuários não podem alterá-lo..=> a terceira parte significa permissões para os demais usuários Vamos entender agora o que significa esses caracteres (r. . w. gravá-lo..... mas não executá-lo. Leitura permite ao usuário ler o conteúdo do arquivo mas não alterá-lo. Gravação permite que o usuário altere o arquivo. Sendo assim.. nem executá-lo (---). x => significa permissão de execução (execution)..... respectivamente. como o nome diz... As permissões funcionam em conjunto.o proprietário pode alterá-lo.. 16 22:41. 1 wester . permite que o usuário execute o arquivo. 29 23:30 ...=> a primeira parte significa permissões do proprietário rw. gravá-lo..proprietário.. vamos entender a string do nosso exemplo dividindo-a em 4 partes: Linha 1: drwx-----.. Por exemplo. -). 512 Jan . ou seja. ficaria assim: rw. por exemplo. gravá-lo e executá-lo (rwx).. cabendo ao dono determinar qual dessas permissões é habilitada para os usuários ou não.representam: r => significa permissão de leitura (read).. Note que é necessário ter certo cuidado com as permissões. Arquivos/ . w.. basicamente. Isso quer dizer que cada arquivo/diretório tem as três permissões definidas. . w => significa permissão de gravação (write). x.o proprietário pode alterá-lo. Pode ser que uma determinada quantidade de usuários tenha permissão para alterar um arquivo.. Mas acontece que as permissões não funcionam isoladamente.o grupo não pode pode alterá-lo. fazendo com que todo usuário membro dele possa alterar o arquivo.txt . de forma que o usuário tenha ou permissão de leitura ou de gravação ou de execução. mas outros não.. Repare que como este arquivo . . vamos entender o que as letras r. x e o caractere .. três tipos de permissões: leitura. . Linha 2: -rw-rw-r-. o grupo e todos os demais. .. 2 wester . Tomando a linha 2 do exemplo (- rw-rw-r-). a permissão de gravação desse arquivo será dada ao grupo.. notas. gravação e execução.. A ordem em que as permissões devem aparecer é rwx.é um diretório (d).. Execução. no caso de ser executável. Há.é um arquivo (-).... Daí a necessidade de se usar grupos.=> a segunda parte significa permissões do grupo ao qual o usuário pertence r-. 280232 Dec .

A tabela abaixo mostra as permissões mais comuns: --. . rwx => leitura. e a combinação deles gera a permissão: Lista 1 Símbolo u => usuário g => grupo O (letra 'o' maiúscula) => outro a => todos Lista 2 Símbolo r => leitura w => gravação x => execução Para poder combinar os símbolos destas duas listas. . Para ter uma visão mais clara da forma simbólica com o chmod. r-x => leitura e execução. Primeiramente veremos o método simbólico. r-.não é executável.=> leitura e gravação. Chegou a hora de aprender a configurar permissões e isso é feito através do comando chmod (de change mode).old para um usuário.o usuário somente tem permissão de ler o arquivo.=> permissão de leitura.=> nenhuma permissão. Configurando permissões com chmod Nos tópicos anteriores você dever tido pelo menos uma noção do que são permissões e de sua importância no Linux. Um detalhe interessante desse comando é que você pode configurar permissões de duas maneiras: simbolicamente e numericamente.(sinal de subtração) => remover permissão = (sinal de igualdade) => definir permissão Para mostrar como essa combinação é feita.o grupo tem permissões idênticas ao proprietário (rw-). O comando a ser digitado é: chmod u+w teste. vamos supor que você deseje adicionar permissão de gravação no arquivo teste. rw. usam-se os operadores: + (sinal de adição) => adicionar permissão .old . imagine que tais símbolos se encontram em duas listas. a permissão de execução aparece desabilitada (rw-). não pode alterá-lo (r--). gravação e execução.

old Repare que o arquivo teste.na forma numérica fica sendo 101100000. o sinal de adição (+) indica que está sendo adicionada uma permissão e "w" indica que a permissão que está sendo dada é de gravação. Mas temos ainda que acrescentar a forma decimal (ou seja. Em seguida. Caso você queira dar permissões de leitura e gravação ao seu grupo. o comando será: chmod g+rw teste. Podemos usar então: chmod g=rwx teste.old deverá estar com todas as permissões disponíveis para o grupo. Em vez de usar letras como símbolos para cada permissão. caso contrário. a string de permissões r-xr----. usam-se números. Usando chmod com o método numérico Usar o chmod com valores numéricos é uma tarefa bastante prática.O "u" indica que a permissão será dada a um usuário. Sendo assim. Isso lhe ajudará muito no entendimento deste recurso. observe a tabela abaixo: Permissão Binário Decimal --. atribui-se valor 1. Para isso. vamos supor que o arquivo teste. 000 0 --x 001 1 -w.old tem permissões rwx para o grupo Dica: crie arquivos e diretórios. Essa combinação de 1 e 0 é um número binário. 010 2 . números de 0 a 9). teste a combinação de permissões com chmod. atribui-se o valor 0. Se determinada permissão é habilitada.old Agora.

txt Permissões rw------.ou 110 para criar a permissão. Para exemplificar. A tabela abaixo mostra uma lista de configurações bastante utilizadas: . que por sua vez. simplesmente usa-se o número 6.txt para ver o que aparece (notas. a string de permissões r--r--r-.txt. Como zero aparece duas vezes.em decimal é igual a quatro. forma-se então o valor 600. em vez de usar rw. vamos utilizar a permissão rw-. Repare que. pois r-.no arquivo notas. na tabela acima. a coluna Binário mostra como são os valores binários dos números de 0 a 7 do sistema decimal. é o sistema de numeração que utilizamos no nosso cotidiano). ele precisa de uma sequência para representar os valores. pois 6 equivale a rw. 110 6 rwx 111 7 Se você não conhece o sistema binário deve estar se perguntando o que esse "monte" de 0 e 1 tem a ver com os números de 0 a 7.pode ser representa por 444.txt com o comando chmod 600 Acima. estão sendo dadas as permissões rw------. Observe o exemplo abaixo: chmod 600 notas.e 0 equivale a ---. Então. Faça o comando acima com um arquivo de teste e depois digite ls. Assim sendo. Como o sistema binário somente trabalha com os números 0 e 1 (decimal trabalha com os números de 0 a 9. 100 4 r-x 101 5 rw.ao arquivo notas.-wx 011 3 r-.l notas. Chegou a hora então de relacionar a explicação do parágrafo acima com a coluna Permissão. em vez de três. em decimal corresponde ao número 6. ou seja. Sendo assim.txt deve ser substituído pelo arquivo que você está usando). com o método numérico. cujo valor em binário é 110. usamos somente um dígito para representar uma permissão.

txt com o comando chmod 600 Acima. permissões são um dos aspectos mais complexos existentes. por fim. 600 rw-r--r-. Tal complexidade é equivalente à eficiência do uso de permissões. ao trabalho! Treine. A questão é que nos sistemas baseados em Unix.750 rwxr-xr-x 755 rwxrwxrwx 777 As três últimas permissões da tabela são comumente usadas para programas e diretórios. Por isso. a melhor maneira de entender as permissões é treinando. Boa aprendizagem! Entendendo e usando permissões no Linux (Parte 2) Introdução Nesta segunda parte sobre entendimento e uso de permissões no Linux. 400 r--r--r-. 444 rw------. A tabela abaixo mostra uma lista de configurações bastante utilizadas: -------. Como zero aparece duas vezes. 000 r-------.txt. O primeiro comando permite manipular as permissões padrão (default) do sistema. vamos trabalhar com os comandos umask.e 0 equivale a ---. Mas não se sinta culpado por isso (e também não ponha toda a culpa na ineficiência do autor para explicar o assunto :D ).l notas.Permissões rw------. chown e chgrp.txt deve ser substituído pelo arquivo que você está usando). forma-se então o valor 600.ao arquivo notas. o terceiro é utilizado para mudar o grupo no qual um arquivo/diretório pertence.no arquivo notas. Mas você pode ter ficado confuso com todo esse esquema de permissão. Faça o comando acima com um arquivo de teste e depois digite ls. pois 6 equivale a rw. 644 rw-rw-rw. . Finalizando Como você viu. Sendo assim.txt para ver o que aparece (notas. 700 rwxr-x--. estão sendo dadas as permissões rw------. é muito mais prático utilizar o chmod com o método numérico. o segundo é usado para alterar o proprietário do arquivo ou diretório e.666 rwx-----. crie permissões e veja seus resultados.

o oposto. você pode não ter permitido nenhum acesso aos outros usuários do sistema. por exemplo. e tenha sido dada permissões de leitura. Mas muito provavelmente essa não era sua intenção. O umask (máscara de criação de arquivos) é responsável por controlar as permissões padrão dos arquivos. continua no arquivo. ou seja. as permissões padrão podem diferenciar. Isso . por exemplo. acrescenta-se um 0 à esquerda. por exemplo. 777 (este valor é sempre usado neste tipo de operação) e fazer uma adição: 777 => 111 111 111 Então. significa exatamente o contrário! Vejamos o porquê: O umask é uma espécie de filtro pelo qual os arquivos passam para determinar suas permissões.Para você entender esses recursos. transformando o valor em 007 (sempre que houver uma situação como essa. Vamos lá? Trabalhando com permissões padrão Pode acontecer de você. Mas há algo importante a citar em relação a esse comando: quando esta instrução é utilizada. deve então usar o valor 007. vamos agora transformá-los em um valor decimal: 111 111 000 => 770 Esse então passa a ser o valor da permissão padrão. Você percebe então que ao criar permissões em arquivos. criar arquivos com permissões de leitura e gravação para o proprietário e para um grupo usando chmod. ou seja.111. 000. Mas isso não significa que o arquivo em questão tenha sido criado sem nenhuma permissão para o proprietário e para o grupo. É aí que entra em cena o comando umask.000 Repare no valor que resultou da adição. Com os valores do resultado da adição do equivalente binário para 007 e 777 em mãos.000. Se o valor da permissão for verdadeiro. Observe o esquema abaixo para entender melhor: Vamos transformar a máscara (no nosso caso.111====>007 +111 111 111====>777 111. Quando há 1 + 1 o valor passa a ser 0 e não 2. ter 770 como permissão padrão para um arquivo. Quando há 0 + 1. gravação e execução para todos os demais. mostrar o valor 07. Neste caso. Repare agora que o valor do umask é justamente o contrário do valor normal. Neste caso. pois no sistema binário somente existem os valores 0 e 1 (não há 2 ou outros números). Isso porque os conceitos mostrados no primeiro artigo serão aplicados aqui. deve-se interpretar como se houvesse mais um zero à esquerda). é extremamente importante que a primeira parte deste assunto tenha sido lida. o valor 007) em um valor binário: 007 => 000 000 111 Agora vamos alinhar esse valor com o equivalente em binário para "todas as permissões dadas". quando alguém quer. caso contrário. Na verdade. ela pode. o valor é 1. deverá sair.

parecer confuso. ele oculta essa permissão e dá ao arquivo com permissão 770 o valor 660. Isso deixa claro que o umask sempre trabalhará com o valor oposto. apenas permissão de leitura e execução para o grupo. leitura. é recomendável usar um valor com permissão de execução mesmo para arquivos de textos. e digite: umask 027 iw Esse comando faz com que. Isso pode. vamos exercitar: crie um diretório qualquer. observe: Aplicando umask no diretório iwNote que o arquivo não tem permissão de execução para o proprietário e para o grupo porque não é um arquivo executável. e nenhuma permissão para os demais. iw. Vamos supor agora que você queira que a permissão padrão direcione os arquivos somente ao proprietário (isto é. por padrão. Veja este caso para entender melhor: ao trabalhar com 770 (máscara 007) com determinados arquivos. Mesmo assim. Veja. pois pode haver um diretório no meio de tudo e. na realidade. valor 660? Simplesmente porque o sistema sabe que para alguns arquivos a permissão de execução não faz sentido. gravação e execução para o proprietário e para o grupo. de fato. mas nenhuma permissão para os demais. . Assim. os outros usuários não têm acesso) e os deixe como leitura. por que alguns têm. Basta criar um arquivo qualquer dentro desse diretório e digitar "ls -l nome do arquivo" para ver que as permissões padrão são justamente essas. Por isso. por isso é necessário raciocinar e praticar bastante para ter um entendimento claro do umask e de sua utilidade. você quer ter a permissão r-x------. para este caso. os arquivos criados dentro do diretório iw tenham permissão total para o dono do arquivo. a permissão de execução é válida. ou seja.significa que o umask vai dar permissão padrão. por exemplo. Para usar o umask é necessário usar o valor contrário. ou seja. essa situação é exatamente o contrário de 007 se fosse usado chmod.

que é -w-rwxrwx. O procedimento para alterar a propriedade de arquivo consiste em primeiro informar quem será o novo proprietário e então indicar o arquivo ou diretório.txt do usuário arthur para o usuário marvin. não poderá "tomar" o arquivo de volta.txt" para mostrar que o processo foi bem sucedido: . Passando este valor para binário. Somente seu colega. E se você precisar. Antes de executar esse passo. Alterando a propriedade de um arquivo/diretório Como você já deve saber. todo arquivo ou diretório no Linux tem um dono e um grupo. por algum motivo. arthur é o dono atual do documento: Checando a propriedade do arquivo Agora. vamos fazer o seguinte: transferir o arquivo guia. de fato. Mas. o comando que deve ser usado é: umask 277. vamos digitar o comando "ls -l guia. Então. transferir a "posse" desse arquivo/diretório para outro usuário? Fazer isso é muito fácil! Para facilitar a compreensão. 111 = 7). Em seguida. por exemplo. o resultado é 010 111 111 e passando para decimal. Sendo assim. faremos uso do comando chown. vamos digitar novamente "ls -l guia. Para isso. vamos executar o procedimento de transferência de propriedade de guia.txt" para comprovarmos que. esteja atento ao seguinte detalhe: se você "transferir" a propriedade de um arquivo seu para um colega de trabalho. poderá devolvê-lo a você. agora dono do arquivo. antes de prosseguirmos. 277 (010 = 2.txt para o usuário marvin por meio do comando chown. para alterar permissões particularmente usa-se o comando chmod. Lembre-se de um detalhe importante: as permissões padrão são dadas aos arquivos e diretórios assim que criados.

txt Transferindo a propriedade do arquivo para outro usuário Em muitos casos. Se você usar o chown e aparecer um aviso de "Permission Denied" ou "Command Not Found" ou equivalente. o comando sudo foi utilizado. Para isso. esse comando pode não ser permitido aos usuários (somente ao root) por questões de segurança. Para isso. Veja o caso do nosso arquivo de exemplo guia. você pode utilizar o comando sudo seguido da instrução de transferência. pode ser necessário identificar o grupo no qual o arquivo pertence. na imagem anterior. Tal procedimento pode ser feito com o comando "ls -lg nome do arquivo/diretório".txt: . Em poucas palavras. o sudo é uma espécie de lista de autorização para que o seu e outros usuários possam executar tarefas de poder administrativo. é porque provavelmente seu usuário se encaixa neste caso.txt ls -l guia.txt Alterando o grupo de um arquivo/diretório Também é possível alterar o grupo de um arquivo ou diretório. o sudo pedirá que você informe sua senha na primeira vez que o comando for utilizado. Note que.chown marvin guia. Cabe então ao root permitir a transferência de propriedade dos arquivos. ficando da seguinte forma: sudo chown marvin guia. Se seu usuário tiver autorização para isso.

Perceba então que. Veja como fica em nosso caso (repare que. novamente. Neste caso. sabendo configurar permissões.Alterando o grupo de um arquivo Note na imagem anterior que o arquivo em questão pertence ao grupo terra. . Em seguida. a dica final é: pratique e explore as possibilidades de cada comando. Todo arquivo e diretório precisa ter um dono. foi transferido para o grupo infowester.txt foi transferido com sucesso para o grupo infowester. assim como necessita ter configurações de permissões para informar o que outros usuários e grupos podem ou não fazer. o comando sudo é utilizado): chgrp infowester guia.txt Acima. é possível manter o sistema e suas funcionalidades bastante seguras. Finalizando Uma das características que tornam sistemas operacionais baseados no Unix tão seguros é o leque de possibilidades de permissões. o arquivo guia. Basta digitar esse comando seguido do nome do novo grupo mais o nome do arquivo. Por isso. É importante citar que você deve ser membro do grupo do qual o arquivo pertencia para poder transferí- lo. o comando utilizado foi chgrp.