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.
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.