Uma propriedade bastante importante do sistema de arquivos de sistemas operacionais próprios para servidores como o Linux
é a existência dos conceitos de permissões de acesso, proprietário e grupos de proprietários para cada arquivo ou diretório existente. Vejamos o exemplo abaixo:
-rw-rw-r-- 1 aluno users 210670 2011-02-28 08:30 livro.pdf drwxr-xr-x 2 aluno users 4096 2011-03-23 11:08 imagens
As primeiras colunas são formadas por um conjunto de letras ou traços indicando o tipo de arquivo e as permissões de acesso ao mesmo. A primeira letra indica o tipo de cada arquivo, podendo ser (entre outros):
-
Para arquivos comuns;d
Para diretórios;l
Para links simbólicos;b
ou c
Para arquivos especiais, utilizados pelo Linux
para acessar dispositivos da máquina;
Cada três conjuntos de letras (ou traços) seguintes indicam as permissões de leitura, escrita e execução (rwx
) para o proprietário, grupo e outros usuários, respectivamente. A ausência de alguma permissão é indicada por um -
. No exemplo anterior, o arquivo livro.pdf
pode ser lido e escrito (rw-
) pelo proprietário e grupo, e pode ser apenas lido (r–
) por outros usuários. O proprietário e o grupo do arquivo são indicados na terceira e quarta coluna. No exemplo dado, o proprietário é aluno
e o grupo é users
.
Para alterar as permissões de um ou mais arquivos usamos o comando chmod
.
Sintaxe : chmod <permissões> <lista-de-arquivos>
As permissões
podem ser definidas de dois modos, no primeiro, chamado de simbólico deve-se especificar, nesta ordem:
Conjunto de usuários u : usuário g : grupo o : outros a : todos
Tipo de alteração + : adiciona permissões - : retira permissões = : define permissões
Permissões r : leitura w : escrita x : execução
Exemplos:
aluno@debian:~$ ls -l livro.pdf -rw-r--r-- 1 aluno users 645467 2011-03-27 15:57 livro.pdf aluno@debian:~$ aluno@debian:~$ chmod g+w livro.pdf aluno@debian:~$ aluno@debian:~$ ls -l livro.pdf -rw-rw-r-- 1 aluno users 645467 2011-03-27 15:57 livro.pdf
aluno@debian:~$ ls -l calculadora.c -rw-rw-r-- 1 aluno users 2081 2011-03-27 15:50 calculadora.c aluno@debian:~$ aluno@debian:~$ chmod g-rw,o-rw calculadora.c aluno@debian:~$ aluno@debian:~$ ls -l calculadora.c -rw------- 1 aluno users 2081 2011-03-27 15:50 calculadora.c
aluno@debian:~$ chmod u=rw,g=r,o= teste.txt aluno@debian:~$ aluno@debian:~$ ls -l teste.txt -rw-r----- 1 aluno users 281 2011-03-25 15:50 teste.txt
aluno@debian:~$ chmod a=rw memorando.doc aluno@debian:~$ aluno@debian:~$ ls -l memorando.doc -rw-rw-rw- 1 aluno users 20081 2011-02-25 12:50 memorando.doc
aluno@debian:~$ chmod a=,u=rx script.sh aluno@debian:~$ aluno@debian:~$ ls -l script.sh -r-x------ 1 aluno users 5812 2010-07-25 22:56 script.sh
aluno@debian:~$ chmod u+x testedir aluno@debian:~$ aluno@debian:~$ ls -ld testedir drwxr-xr-x 2 aluno users 4096 2011-03-27 16:08 testedir
aluno@debian:~$ chmod a=,u+rwx security aluno@debian:~$ aluno@debian:~$ ls -ld security drwx------ 2 aluno users 4096 2011-01-14 12:43 security
A outra forma de alterar permissões é chamada de modo octal. Nela as permissões são definidas através de três números que variam de 0 a 7, sendo o primeiro para o dono, o segundo para o grupo e o terceiro para os outros usuários. Cada número octal é formado somando os valores de cada permissão desejada, a saber:
4 : Leitura 2 : Escrita 1 : Execução
Desta forma, teremos
--- = 0 --x = 1 -w- = 2 -wx = 3 r-- = 4 r-x = 5 rw- = 6 rwx = 7
Exemplos:
aluno@debian:~$ chmod 600 nota.txt aluno@debian:~$ aluno@debian:~$ ls -l nota.txt -rw------- 2 aluno users 8146 2011-02-14 17:43 nota.txt
aluno@debian:~$ chmod 750 backup.sh aluno@debian:~$ aluno@debian:~$ ls -l backup.sh -rwxr-x--- 2 aluno users 1483 2009-07-26 11:13 backup.sh
aluno@debian:~$ chmod 644 monografia.doc aluno@debian:~$ aluno@debian:~$ ls -l monografia.doc -rw-r--r-- 2 aluno users 8146 2011-02-01 02:03 monografia.doc
Para alterar o proprietário de um ou mais arquivos usamos o comando chown
. Por questões de segurança, apenas administradores podem realizar este tipo de alteração.
Sintaxe : chown [opções] <novo-dono> <lista-de-arquivos>
Opções (principais):
-R :
Altera o proprietário dos arquivos e diretórios recursivamente.
Exemplos:
root@debian:~/aula# chown maria teste.c
root@debian:~/aula# chown -R root /tmp
Para alterar o grupo de um ou mais arquivo usamos o comando chgrp
. Por questões de segurança, apenas administradores podem realizar este tipo de alteração.
Sintaxe : chgrp [opções] <novo-grupo> <lista-de-arquivos>
Opções (principais):
-R :
Altera o grupo dos arquivos e diretórios recursivamente.
Exemplos:
root@debian:~/aula# chgrp users teste.c
root@debian:~/aula# chgrp -R root /bin