Hugo Cisneiros, hugo@devin.com.br
Última atualização em 06/02/2003
No Linux, como em outros sitemas Unix, cada arquivo tem uma permissão. As permissões são atributos dos arquivos que especificarão se ele pode ser lido, executado ou escrito. Estas permissões que vão definir o que um usuário pode fazer. Para saber se um programa é executável ou não, execute um 'ls -l' e veja no lado esquerdo se o arquivo tem X nos seus argumentos, como no exemplo abaixo:
drwxr-xr-x 2 root root 1024 Dec 23 15:22 bin |
No exemplo acima todos os arquivos tem como dono root e como grupo também root, com exceção do 'teste.txt' que o dono é 'killer' e o grupo é 'users', e também 'teste2.doc', no qual 'hugo' é o dono e o grupo 'visits' também é dono. Como você pode ver do lado esquerdo de cada arquivo/diretório existe um série de letras r, w, x ou d! Vamos ver o que representa cada uma delas:
drwxrwxrwx |
No caso acima, a primeira coluna significa (numero 0) se o nome listado é um diretório ou não, caso não seja um diretório ele será exibido da seguinte maneira:
-rwxr--r-- 1 root root 57 Mar 10 03:44 make-backup |
O exemplo abaixo mostra o que seria um diretório:
drwxr--r-- 1 root root 1 Mar 10 01:12 bin |
Também há casos em que no lugar do 'd', aparecem outras letras que indicam outros tipos de arquivos. A letra 'l' significa que é um link simbólico, as letras 'c' e 'b' correspondem à dispositivos (/dev). Veja alguns exemplos abaixo:
crw-rw---- 1 hugo audio 14, 4 Dec 2 1999 audio |
Continuando, na segunda coluna (números 1 de acordo com o exemplo mais acima) temos as definições para o dono do arquivo, como mostra o exemplo:
-rwxr--r-- 1 killer users 1231 Mar 09 12:12 teste.txt |
Seguindo, na terceira coluna (números 2 de acordo com o exemplo lá em cima) temos as definições para o grupo que é dono do arquivo, como mostra o exemplo:
-r--rwxr-- 1 fernando visits 212 Mar 01 12:42 exemplo.doc |
Finalmente, temos a quarta coluna (composto pelos números 3), essa coluna se refere as permissões para todos os outros usuários do sistema, sem ser os donos e grupos-donos dos mesmos, exemplo:
-r--r--rwx 1 fernando visits 1231 Mar 03 12:42 exemplo2.doc |
Quando nos referimos a diretório invés de arquivos, o FLAG x (executável) diz se o diretório é ou não acessível, já que não podemos "EXECUTAR" diretórios... Exemplo:
drwxr--r-- 1 root root 2134 Mar 01 12:54 exemplo3 |
O comando chmod pode ser usado para mudar os FLAGS 'rwx' dos arquivos e/ou diretórios, a sintaxe básica do comando é:
chmod [ugoa]{-+}[rwx] nome_do_arquivo_ou_diretório |
Então vamos à um exemplo. Se eu quero mudar a permissão para o dono do arquivo (u=user) poder ler e gravar (rw) no 'arquivo1.txt', faço o seguinte:
$ chmod u+rw arquivo1.txt |
Caso você queira desfazer o comando, você faria: "chmod u-rw arquivo1.txt". Como se vê, o + ou - define se os FLAGS serão ativados ou desativados! Outros exemplos:
$ chmod a+r arquivo2.txt |
(Todos usuários (a=all) podem ler o 'arquivo2.txt')>
$ chmod o+w arquivo3.txt |
(Outros usuários (o=others) sem ser o dono e o grupo dono do arquivo, podem gravar no 'arquivo3.txt')
$ chmod g+x netscape |
(O grupo-dono do arquivo (g=group) pode executar o arquivo 'netscape')
O comando chmod pode também ser usado com números, em vez dos flags. Este método é chamado de octal, veja o exemplo abaixo:
$ chmod 664 arquivo.txt |
O que quer dizer cada um desses números? Veja abaixo:
Número | Significado |
0 | Nenhuma permissão |
1 | Permissão para executar |
2 | Permissão para gravar |
3 | Permissão para gravar e executar |
4 | Permissão para ler |
5 | Permissão para ler e executar |
6 | Permissão para ler e gravar |
7 | Permissão para ler, gravar e executar |
No exemplo o comando informou que o 'arquivo.txt' pode ser lido e gravado pelo seu dono (numero 6 na primeira coluna), informou que pode também ser lido e gravado pelos usuários que compõem o grupo-dono (numero 6 na segunda coluna), e informou que pode ser lido por todos os outros usuários do sistema (numero 4 na ultima coluna).
O comando chown é simples e pode ser usado para mudar o dono e o grupo dono de um arquivo/diretório. E é usado da seguinte maneira:
$ chown usuario.grupo arquivo_ou_diretorio |
Como exemplo, vamos definir que um arquivo 'teste4.txt' terá como dono 'killer' e como grupo 'users':
$ chown killer.users teste4.txt |
Outros exemplos:
$ chown mrdvs.visits teste5.txt |
Tirado de: http://www.devin.com.br/eitch/permissoes/
No comments:
Post a Comment