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. Ente 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:
• -R para que olhe também nos subdiretórios da rota.
• - v para que mostre cada arquivo processado
• - c é como -v, porém só avisa dos arquivos que modifica suas permissões
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.
Por exemplo:
chmod 0777 arquivo.txt
Atribui todas as permissões ao arquivo arquivo.txt
chmod 0666 *
Atribui permissões de leitura e escritura, não de execução a todos os arquivos e diretórios do diretório onde executamos o comando.
chmod -R 0644 *
Isto dá permissões a todos os arquivos e diretórios do diretório onde se invoca o comando e de todos os diretórios que estão pendurados nele. As permissões atribuídas são de leitura a todos os usuários, de escritura só ao dono do arquivo e de execução a ninguém.
Outro modo de trabalho com 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.
O chmod serve para alterar permissões em arquivos ou diretórios.
Lembre que somente quem tem permissão no arquivo ou diretório poderá alterar as permissões, quando ocorrer erros, verifique seus direitos sobre o arquivo ou diretório com o comando "ls -l" ou faça com poderes de root.
Vamos aprender de modo simples a usar as permissões que muitas vezes é bastante complicado.
Tendo em mente que o conceito de binário significa 0 = desligado e 1 = ligado, vejamos como fica na tabela abaixo:
rwx
0 - 000
1 - 001
2 - 010
3 - 011
4 - 100
5 - 101
6 - 110
7 - 111
Onde "rwx" são as permissões de um arquivo, ou seja:
• r = read (leitura);
• w = write (gravação, alteração, deleção);
• x = execute (execução).
Feito isso, sabemos que um arquivo ou diretório possui 3 modos de permissão. Uma permissão para o DONO do arquivo ou seja, quem o criou, uma outra permissão para o GRUPO do usuário dono do arquivo, e outra permissão para QUALQUER outro usuário ou grupo.
Sabendo disso, temos a tabela final abaixo:
dono grupo outros
rwx rwx rwx
0 - 000 000 000
1 - 001 001 001
2 - 010 010 010
3 - 011 011 011
4 - 100 100 100
5 - 101 101 101
6 - 110 110 110
7 - 111 111 111
Exemplo: Temos um diretório qualquer chamado mp3 que eu quero permissão total para o dono [eu], permissão de apenas leitura para o meu grupo e nenhuma permissão para o resto do mundo. O comando para executar essa ação é o CHMOD (em minúsculo mesmo).
$ chmod 740 /mp3
Acompanhem na tabela acima, que o 7=rwx, 4=r e 0=nada.
Os modos de permissão no Unix
Quando executamos o comando "ls -l /" nos são mostrados todos diretórios e arquivos na raiz do sistema, é fácil identificar nessas listagens o nome, tamanho, data e dono dos diretórios e arquivos, mas temos que observar estes 10 caracteres do inicio das linhas que aparecem assim:
# ls -l /
3 drwxr-xr-x 2 root root 3072 2008-01-29 10:13 bin
0 lrwxrwxrwx 1 root root 1024 2008-01-28 08:54 cdrom->media/cdrom
Observando, temos 3 classes de usuários que podem ter acesso aos arquivos:
• O dono (a pessoa que criou o arquivo);
• O grupo (usuários que são agrupados pelo administrador do sistema);
• E os outros (todos os usuários conectados a rede).
Os 10 primeiros caracteres das linhas listadas acimas pelo "ls -l" definem precisamente o que os usuários de cada classe podem fazer com seus arquivos. Esses caracteres são chamados de modos de permissão dos arquivos e se dividem em 4 grupos com 1, 3, 3 e 3 caracteres:
[1] [r][w][x] [r][w][x] [r][w][x]
| | | |
tipo dono grupo outros
O primeiro caracter define o tipo de arquivo que pode ser:
• "-" - significa um arquivo normal;
• "d" - significa um diretório;
• "l" - significa um 'link' simbólico.
Há outras possibilidades raramente utilizadas que são "b", "c", "p" ou "s".
Os outros 9 caracteres devem ser separados em 3 grupos de 3 caracteres como o exemplo acima, sendo:
• O primeiro as permissões do dono do arquivo;
• O segundo as permissões do grupo de usuários;
• O terceiro as permissões de todos os outros usuários.
Em cada grupo, as permissões sempre aparecem na ordem:
• r = Leitura;
• w = Escrita-execução-deleção;
• x = Execução.
Obs.: A permissão de leitura é sempre indicada com um "r". A permissão de escrita é sempre indicada com um "w". A permissão de execução é sempre indicada com um "x". Permissão negada é indicada com um "-".
Exemplo:
# ls -l /
3 drwxr-xr-x 2 root root 3072 2008-01-29 10:13 bin
0 lrwxrwxrwx 1 root root 1024 2008-01-28 08:54 cdrom->media/cdrom
Observando o diretório "bin" temos as permissões drwxr-xr-x , que podemos interpretar como:
• tipo = d (diretório);
• dono = rwx (permissão total);
• grupo = r-x (permissão de leitura e execução, não pode gravar nem deletar);
• outros = r-x (permissão de leitura e execução, não pode gravar nem deletar).
Obs.: Caso o tipo seja igual á "-" significa que é um arquivo comum.
Alterando as permissões de acesso a um arquivo
Usando o comando 'chmod' para alterar as permissões de um arquivo, observando que ele somente muda a permissão não muda o tipo de arquivo.
Este comando pode ser usado de duas maneiras:
1º (primeiro)
chmod
Onde "atribuição" é uma seqüência de caracteres formada por:
• "u" = Usuário, dono do arquivo ou documento;
• "g" = Grupo;
• "o" = Outros.
Devemos indicar as classes que terão as permissão alterada, usando os sinais: "+", "-" ou "=" => indica se a permissão sera adicionada (+), retirada (-) ou definida (=), indicada por um dos caracteres "r" (leitura), "w" (escrita) ou "x" (execução) indicando as permissões.
Exemplo:
# chmod joão=+rw /mp3
Este comando determina que o dono, o grupo e todos os outros usuários tenham permissão de leitura e escrita no diretório /mp3. Outro exemplo é dar permissão á um grupo e outros para escrever na diretório. Fica assim:
# chmod go-r /mp3
Desta forma o grupo e outros terão permissão somente de leitura as músicas que estão dentro da pasta.
-rw-r--r-- 1 root root 1200 2008-01--25 20:09 /mp3
2º (segundo)
Outra forma de usar o 'chmod' é usar números para definir as permissões. Exemplo:
chmod número arquivo
Onde "número" é formado por 3 algarismos,todos no intervalo de 0 a 7, de tal forma que a representação binaria com 9 dígitos deste número esteja relacionada aos modos de permissão como na tabela no inicio ou da seguinte forma:
• 0 = corresponda a permissão negada "-";
• 1 = corresponda a permissão concedida, pode ser de leitura, escrita ou execução.
Exemplo:
# chmod 640 /mp3
Onde 640 é corresponde a:
• 6 = dono (é a soma do leitura (r) + escrita (w));
• 4 = grupo (é somente leitura (r));
• 0 = outro (não permissão de acesso a pasta (-)).
Essa conversão octal <---> permissões é feita facilmente se você observar a seguinte tabela:
---------------------------------------
número binário equiv. permissões
---------------------------------------
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx
---------------------------------------
Abaixo deixo uns exemplos.
Exemplos diversos:
• -r-------- = chmod 400 arquivo = Somente o dono pode ler o arquivo, ninguém pode escrever;
• -r--r--r-- = chmod 444 arquivo = Todos podem ler o arquivo, ninguém pode escrever;
• -rw-rw-rw- = chmod 666 arquivo = Todos podem ler e escrever no arquivo;
• drwxrwxrwx = chmod 777 diretório = Todos podem ler, escrever, criar ou apagar arquivos do diretório;
• drwx------ = chmod 700 diretório = Somente o dono pode ler, escrever, criar ou apagar arquivos. Ninguém mais pode ter acesso a este diretório;
• drwx-wx-wx = chmod 733 diretório = O dono tem acesso total ao diretório. Todos os outros usuários podem apenas escrever.
Nenhum comentário:
Postar um comentário