Para mudar as permissões de um arquivo ou diretório do servidor, você tem que utilizar o comando chmod.

Em geral, qualquer comando de linux ou unix tem uma ajuda, que você pode ver invocando ao comando, seguido com o parâmetro -help. Algo como isto:

chmod –help

Este comando em concreto tem várias sintaxes permitidas. Entre elas, por exemplo, pode utilizar:

chmod [opcoes] modo-em-octal arquivo.

As opções podem ser indicadas ou não, segundo queiramos. Opções típicas são:
d: significa diretório;
-: significa arquivo;
r = leitura (ride);
w= escrita (writer);
x=execução (execute);

Após digitar o comando ls -l todas as permissões dos arquivos do diretório corrente irão ser visualizadas.

EXEMPLO 1:

drwxrwxrwx 3 lino lino 4096 2009-12-11 18:15 pasta sem título

Análise:

d = significa que ele é um diretório;
Os três primeiros caracteres dizem respeito ao usuário root(dono);
Os outros três caracteres dizem respeito ao grupo ao qual pertence o dono do arquivo;
Os últimos três caracteres dizem respeito aos outros usuários do sistema que não fazem parte do grupo Lino.
Conclusão: A leitura, escrita e execução são permitidas a todos os usuários do sistema.

EXEMPLO 2
drwx—— 2 lino lino 4096 2009-12-05 09:29 Música 
Acima está o diretório música e apenas o dono tem permissão de leitura escrita e execução;

EXEMPLO 3
-rwx—— 1 lino lino 733 2009-12-11 10:31 testenovo 
Acima está o arquivo teste e apenas o dono tem todas as permissões;

MUDANDO AS PERMISSÕES:
ls -l (mostra as permissões);
chmod – muda as permissões;

Exemplo 1:
chmod go-rw teste
obs: g = grupo, o=other(outros)
Acima foi removida as permissões de leitura e escrita do grupo e dos outros usuários do sistema ao arquivo teste.

Exemplo 2:
chmod g+r teste 
O comando acima mostra que foi acrescentada a permissão de leitura a todos os usuários do grupo ao arquivo teste.

Exemplo 3:
chmod g=o teste
O comando acima mostra que as permissões do grupo e de todos os usuários do sistema se igualaram.

Exemplo 4:
chmod a=rw teste
obs: a= todos.(all).
O comando acima indica que todos os usuários do sistema terão permissão de leitura e escrita no arquivo teste.

TIPO DE PERMISSÃO OCTAL: 
O modo em octal é um número em base 8 (octal) que especifica a permissão. Os números em octal se especificam começando o número por um 0. Por exemplo, 0777 indica todos as permissões possíveis para todos os tipos de usuário. 0666 indica que se dão permissões de leitura e escritura, porém não de execução. 0766 indica que se dão permissões de leitura e escritura, porém somente tem permissão de execução para os usuários que são donos do arquivo. 0755 indica permissões para leitura e execução, porém escritura só para o usuário que é o dono do arquivo. Vejamos com detalhes cada valor:

0: Sem permissão alguma, se for uma pasta o usuário sequer pode ver o conteúdo;
1: Só execução = x
2: Permissão de escrita(gravação) = w
3: Permissão de gravação e execução =wx
4: Apenas leitura =r
5: Permissão de leitura e execução = rx
6: Permissão de leitura e gravação = rw
7: Permissão de leitura, gravação e execução = rwx

chmoc + xyz(números) + arquivo ou diretório.
x=permissão do dono;
y=grupo;
z=outros usuários;

Exemplo 1:
chmod 760 teste – permissão total ao dono e de leitura e escrita do grupo.
chmod 700 *
* = todos os arquivos do diretório serão mudados com essa permissão.
chmod -R 700 download/
-R = muda todas as permissões recursivamente.

OUTRAS FORMAS DE UTILIZAR O CHMOD:

Logo também se podem atribuir permissões de outra maneira, utilizando outra possível sintaxe de chmod, que talvez resulte mais útil se não quisermos tratar com os valores em octal.

chmod [opcoes] modo[,modo]… arquivo

Para isso temos que ter claros os distintos grupos de usuários:
u: usuário dono do arquivo
g: grupo de usuários do dono do arquivo
o: todos os outros usuários
a: todos os tipos de usuário (dono, grupo e outros)

Também há que saber a letra que abrevia cada tipo de permissão:
r: se refere às permissões de leitura
w: se refere às permissões de escritura
x: se refere às permissões de execução

Exemplos

chmod o=rwx * 
Atribui permissões de leitura, escritura e execução para os usuários “outros” a todos os arquivos da pasta.

chmod a=rwx arquivo.txt 
Atribui todos as permissões a todos os usuários para o arquivo fichero.txt

chmod go= * 
Tira todas as permissões para os usuários do grupo e os outros usuários.

chmod u=rwx,g=rw,o= * 
Dá todos as permissões ao dono do arquivo, aos do grupo do dono lhe atribui permissões de leitura e escritura e aos outros usuários lhes tira todas as permissões.
Nota:um espaço depois da vírgula “,” nos distintos modos de permissões que se indiquem faz falhar o comando.

chmod a=r * 
Dá permissões unicamente de leitura a todos os tipos de usuário.

De um modo parecido ao que acabamos de ver, também se podem adicionar ou tirar permissões com os operadores + e -. Para isso, se indica o tipo de usuário e a permissão que se resta ou adiciona. Algo como isto:

chmod a-wrx * 
Isto tira todos as permissões a todos os tipos de usuário.

chmod a+r,gu+w * 
Este comando atribui permissões de leitura a todos os usuários e permissões de escritura ao dono do arquivo e o grupo do dono.

chmod u=w,a+r * 
Este comando atribui permissões de escritura ao usuário dono e adiciona a todos os usuários permissão de leitura.

One thought on “Mudando permissões

  1. Além dos drwx, existe também o “s” e o “S”, que ainda pretendo compreender, mas algo que me confunde é sobre:

    x para pasta: O que representa executar uma pasta?
    x para um arquivo “executável” é compreensivo e para um arquivo de texto ou de configuração?

    Existem algumas peculiaridades, alguns casos bem específicos que tornam a compreensão completa desse tópico “permissões”, difícil de entender e de se sentir seguro completamente, já que se trata de algo de grande importância.

    Acredito que entrar nesses aspectos auxiliaria bastante, pois geralmente nos deparamos com esses casos bastante específicos.

    Obrigado.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*