Você está na página 1de 15

C"" ,_API:TULO 6 .

)
( .. ~ I ~ i

,~

PE'RMISSOE.S ARQUIVOS

E PROPRI,EDADE,S

DE

Cada arquivo e diret6rio em um sistema Linux possui um conjunto de permiss6es e propriedades integradas a ele. E atraves disso que 0 sistema sabe quem pode mexer em qual arquivo, quando 0 arquivo foi modificado, etc. Ao final do capitulo, voce devera ser capaz de:

~ Utilizar os comandos chmod e chown para modificar propriedades e permiss6es de arquivos e diret6rios ~ Distinguir os modos octal e textual comandos de mudanc;:a de permissao para os para metros dos

Como ja visto, 0 Linux e um sistema multiusuario e e necessario ter uma conta de acesso para utiliza-Io. Alem da autenticac;ao para acesso ao sistema, uma outra funcionalidade relativa aos conceitos de usuarios e grupos e 0 de permiss6es de arquivos, onde e definido quem pode acessar e como determinados arquivos e diret6rios. sistema de arquivos do Linux possibilita que sejam atribufdos direitos de acesso diferenciados para os usuarios do sistema. A cada arquivo ou diret6rio do sistema e associado um proprietario, um grupo e seus respectivos direitos de acesso, ou permiss6es.

Grupo dono: E 0 grupo proprietario do arquivo/diret6rio. (geralmente 0 usuario dona) ou varios usuarios.

0 grupo pode conter um usuario

13

Leitura (r): Permissao para visualizar read). Escrita (w): Permissao para alterar write).
0

conteudo do arquivo, simbolizada

por "r" (do ingles

(J

conteudo do arquivo, simbolizada

por "w" (do ingles

A combinac;ao dos nfveis de permissao com os tipos de permissao forma 0 conjunto de propriedades para cad a arquivo ou diret6rio. Estas propriedades sao atribufdas com 0 objetivo de determinar quem pode acessa-Io, ler seu conteudo ou mesmo executar algum programa.

Para visualizar as permiss6es de um arquivo, pode-se utilizar 0 comando Is -I, que listara os arquivos do diret6rio atual com uma serie de informac;:6es adicionais, incluindo colunas com as permiss6es. nome do usuario e do grupo donas do arquivo. Veja 0 exemplo abaixo:
1$ ls -l

total 2732

-rw------- rw- r- - r-- rwxr-xr-x 1- rw- roo roo

1 jose 1 jose 1 root 1 maria

desenv desenv root desenv

1524 2781184 748 2382

2884-87-27 2884-87-83 2884-87-12 2884-87-27

15:42 15:41 15:44 15:42

passwd musica.mp3 backup.sh aniversarios.txt

A primeira coluna (da esquerda para a direita) e a que contem todas permiss6es; a segunda indica os links diretos do arquivo, a terceira e quarta colunas especificam 0 nome do usuario e grupo ao qual pertencem 0 arquivo. As demais colunas mostram informac;:6es adicionais sobre 0 arquivo. Na primeira coluna, e mostrado um vetor com espac;:opara 10 caracteres. 0 primeiro identifica 0 tipo do arquivo, enquanto que os outros 9 sac 0 conjunto de tres permiss6es para cad a um dos tres nfveis (usuario, grupo e outros, respectivamente). 0 fluxograma 3 seguir mostra um exemplo de verificac;:ao das permiss6es em uma operac;:ao de leitura para um arquivo:

Para alterar as permissoes e propriedades de arquivos e diret6rios, existem vanos comandos disponfveis. Uma similaridade entre eles e que 05 parametros de nfveis e tipos de permissoes podem ser indicados de duas formas:

No modo textual, utilizam-se 05 caracteres u para representar usuario do no do arquivo, 9 para grupo dona do arquivo e 0 para outros, com um sinal de mais ("+") para adicionar a permissao e menDs ("-") para remover. Veja 0 exemplo generico a seguir (05 detalhes do comando chmod serao vistos mais adiante):
$ chmod u+rw,g+w,o-rwx arquivo2.txt Adiciona leitura e escrita para a dona, adiciona escrita para a grupo e remove todas as outras permiss6es para outros usuarios, em arquivo2.txt.

No formato octal, as permissoes sao representadas por numeros na base octal, onde leitura e representado pelo valor 4, a escrita por 2 e execuc;ao por 1. Somando-se 05 valores obtem-se a permissao desejada para cada nfvel. Exemplo: $ chmod 649 arquivo.txt
Configura a permissao de arquivo.txt como sendo 640: 6 = leitura(4) + escrita(2) para a usuario dona, 4=leitura para a grupo e 0 (nenhuma permissao) para outros.

importante lembrar que 0 usuario root possui permissoes ilimitadas, ou seja, ele podera visualizar ou modificar qualquer permissao de qualquer usuario, em qualquer diret6rio.

6.4 Modificando Proprietarios e Grupos


Nesta se<;:ao,0 usuario conhecera os principais comandos utilizados para modificar e visualizar as propriedades e permiss6es de arquivos e diret6rios.

Permite que se alterem as permlssoes e propriedades de um ou mais arquivos (change mode). E importante ressaltar que 0 usuario deve ter permiss6es para fazer as altera<;:6es (por exemplo: deve ser root, deve ser dona do arquivo, ou deve estar no grupo do arquivo, com permissao de escrita). Pode utilizar tanto a nota<;:ao textual como a octal.

chmod [op~oes] arquivo


-R

diretorio as permiss6es de
--

Permite que se altere recursivamente arquivos e diret6rios.

--~-

- - reference=rarquivo

Permite que 0 arquivo seja modificado tomando como referencia as permiss6es de rarquivo.

Nivel de Permissao u 9
0

II Usuario ou dona do arquivo.

Grupo do arquivo. Outros usuarios que nao sao donos e nao estao cadastrados no grupo. Afeta todos os anteriores (u, g, 0). Tipo de Permissao - Nota~ao Textual

a
r w x

Concede ou remove permissao de leitura.


I Concede ou remove permissao de es_crita.

Concede ou remove permissao de execu<;:ao. Concede ou remove todas as permiss6es anteriores (all).

Tipo dePermissao - Nota~ao Octal Indica permissao de leitura. Indica permissao de escrita.

I Indica I Indica
0

permissao de execuc;ao. todas as permiss6es.

Indica sem permissao. Operadores

Concede permissao(6es) especificada(s). Remove permissao(6es). Atribui somente esta(s) permissao(6es) ao arquivo, removendo a(s) que nao se encontra(m) explfcita(s).

$ chmod u+rw,g+x

documento.txt

Concede permiss6es de leitura e grava<;ao ao dono, e execu<;ao ao grupo para 0 arquivo documento.txt. Note que somente quem tem permissao pode executar este comando (root ou 0 dona do arquivo).

$ chmod 619 documento.txt


Define permissao de leitura e grava<;ao ao dona (4+2 =rw), execu<;ao para 0 grupo (l=x), e nenhuma permissao para qualquer outro usuario (zero). Importante notar que difere do exemplo anterior, pois na nota<;ao textual as permiss6es podem ser adicionadas as atuais, enquanto que na nota<;ao octal, 0 comando define a permissao do arquivo.

$ chmod +x binario.sh
Concede permissao de execu<;ao (+x) de binario.sh para todos os usuarios do sistema (caso nao seja especificado 0 usuario, a permissao concedida/retirada de todos - equivalente ao parametro a+x).

$ chmod --reference=documento.txt

documento2.txt
caso 0 usuario possua

Aplica as mesmas permiss6es de documento.txt para document02.txt, as permiss6es necessarias para executar esta mudan<;a.

$ chmod -R ug=rw,o=r

testes/

Concede permissao de leitura e grava<;ao ao do no e ao grupo, e permissao de leitura a outros, para 0 diret6rio testes e todos os arquivos ou sub-diret6rios contidos dentro dele.

Permite a alterac;:ao do dona e do grupo relacionado ao arquivo, ou arquivos, selecionados (change owner). Um usuario comum pode alterar 0 grupo de um arquivo caso seja membra tanto do grupo de origem quanta do grupo de destino. Porem, por motivos de seguranc;:a, apenas 0 superusuario (root) pode alterar 0 dona de um arquivo.

chown [novo _proprietarioll: novo_grupo] arquivo/diretorio

-R
--reference=arquivo2

Permite que se altere recursivamente grupo dots) arquivo(s).

praprietario

o arquivo

usara

grupo configurado para arquivo2.

$ chown :grupo02 documento.txt $ ls -la documento.txt -rwxrwxr-- 1 aluno grupo02 19127 2004-07-15 18:10 documento.txt
Altera 0 grupo de documento.txt para grupo02. Note que se suficientes, sera mostrada uma mensagem de erro. # chown aluno2:grupo02
#
0

usuario nao tiver permiss6es

documento.txt ls -la documento.txt -rwxrwxr-- 1 aluno2 grupo02 19127 2004-07-15 18:10 documento.txt

Altera 0 do no do arquivo documento.txt para aluno2 eo grupo do mesmo para grupo02. Lembre-se que apenas 0 superusuario (root) pode realizar esta altera<;ao.

$ chown -R :grupo2 alunos/ $ ls -la drwxrwxr-x 11 aluno aluno drwx-----77 aluno aluno drwxrwxr-x 4 aluno grupo02 -rwxrwxr-x 4 aluno grupo02 -rwxrwxr-x 3 aluno grupo02 drwxrwxr-x 7 aluno grupo02 -rwxrwxr-1 aluno aluno
Modifica
0

4096 8192 4096 2235 1245 4096 7365

2004-06-24 2004-08-16 2003-11-14 2004-07-07 2003-06-30 2004-05-11 2004-05-25


0

16:16 11:32 17:59 11:54 13:27 15:04 22:23

Diretorio/ arquivo1 arquivo2 Diretorio2/

arquivo_tradu~ao.sxw

grupo do diret6rio alunos/ e de todo

seu conteudo para grupo2.

Altera apenas 0 grupo para os arquivos, ou diret6rios, indicados (change group). Um usuario comum pode alterar 0 grupo de um arquivo caso ele pertenc;a tanto ao grupo de origem como ao grupo de destino. 0 superusuario (root) pode alterar 0 grupo do arquivo para qualquer grupo valido no sistema.

o comando chown, somente com 0 parametro :grupo (ou seja, sem modificar usuario dono, somente 0 grupo) equivalente ao comando chgrp.

chgrp [op~6es] arquivo(s)

I
para

-R
1-----

Permite que se altere recursivamente a propriedade de I grupo de diret6rios e de seus conteudos. Permite que 0 comando use 0 grupo configurado arquivo2 para configurar outros grupos.

--reference=arquivo2 -c -f

Descreve detalhadamente a ac;ao para cada arquivo cuja propriedade de grupo esta sendo alterada. Forc;a a mudanc;a de grupo, sem relat6rio de erros.

--

$ chgrp coisas textol texto2 Imagens/


Modifica 0 grupo associado aos arquivos textol, texto2 e ao diret6rio Imagens, associandoos ao grupo coisas. Note que 0 usuario devera ter as permiss6es suficientes para esta modificac;ao, caso contrario sera mostrada uma mensagem de erro.

$ chgrp -R empregados

comercial/

Modifica 0 grupo associado ao diret6rio comercial, associando-o ao grupo empregados, e modifica recursivamente todos os arquivos e sub-diret6rios contidos no diret6rio comercial para 0 grupo empregados.

Todo 0 arquivo ou diret6rio em um sistema Linux, ao ser criado, recebe permissoes InIClaIS, indicando 0 acesso para 0 proprietario do arquivo, para 0 grupo ao qual pertence, bem como para os outros usuarios. Estas permissoes iniciais sac criadas atraves da mascara para usuarios ou umask. A umask e constitulda de tres numeros, que funcionam removendo permissoes, quando 0 usuario criar ou copiar arquivos e diret6rios.

a valor

padrao da umask para a maioria das distribui<;oes e 022 (666-022=644) e de 002 (666-002=664) para os outros usuarios.

para

superusuario,

Este comando define as permissoes copiados pelo usuario. Sintaxe:

padrao dos arquivos

que serao criados ou

Onde modo informa a mascara de cria<;ao que sera usuario/grup%utros. Ele pode ser informado de duas maneiras:

fornecida

ao

a Como uma mascara (u=rwx,g=rx,o=rx)

semelhante

utilizada

pelo

comanda

chmod

Desta maneira, e posslvel controlar automaticamente as permissoes dos arquivos que sac criados pelo usuario. a comando executado sem parametros exibe a mascara atual.

Para diret6rios, as permiss6es possuem um significado ligeiramente diferente. Para compreender mais facilmente os conceitos, basta imaginar um diret6rio como se fosse "um arquivo que contem outros arquivos". Veja 0 comparativo abaixo para uma melhor visualiza<;ao:

Permissao Leitura
-

Em Arquivo Permissao para visualizar o conteudo do arquivo. Permissao para alterar conteudo do arquivo.
0

Em Diretorio
-

-'

Permissao para visualizar 0 conteudo do diret6rio (ou seja, listar seu conteudo, utilizando um comando como 0 ls). Permissao para alterar 0 conteudo do diretorio (ou seja, criar ou remover arquivos nele contidos).
0

Escrita

I
L.

Execuc;ao

Permissao para executar


I arquivo.

Permissao para acessar 0 diret6rio (atraves do comando cd, por exemplo).


-

Um diret6rio que tenha permissao 755, permite que seu dona fa<;a qualquer altera<;ao, mas outros usuarios podem apenas acessa-Io e ler seu conteudo. Nesse modo, cada arquivo contido no diretorio fica protegido por sua propria permissao. Eo modo mais comum. Um diret6rio com permissao 710 tem como caracterfstica interessante permitir que usuarios do grupo a que ele pertence acessem arquivos em seu interior, mas desde que saibam seu nome, uma vez que a Iistagem do conteudo nao e permitida. Um diretorio com permiss6es 744 permite que outros listem seu conteudo, mas nao acessem os arquivos. Nesse modo (muito pouco utilizado), apenas os nomes dos arquivos estao disponfveis. Diret6rios tem suas permiss6es alteradas chmod. do mesmo modo que arquivos, utilizando
0

comando

Existem algumas permiss6es especiais de arquivos/diretorios que oferecem funcionalidades das simples permiss6es de acesso. Os mais importantes cenarios de utilizac;:ao estao a seguir.

ale~

de SUID e utilizado em c~DJ-utLos-executaveisquando se deseja que 0 programa seja executad com os privilegios de seu usuario dono. 1550 e util em situac;:6es onde um programa precise acessar determinado recurso, mas os usuarios que 0 utilizem nao 0 possam fazer diretamente. Embora a utilidade do bit SUID seja inquestionavel, seu uso deve ser feito com muito cuidado, pois u problema em sua configurac;:ao pode ter consequencias serias de seguranc;:a (especialmente se 0 SUID for para 0 usuario root).

o bit

bit de SGID tem a mesma func;:ao do bit SUID, mas e aplicado ao .9.QillQ., ou seja, executa do com os privilegios do grupo a que pertence.
0

programa e

A representac;:ao textual do bit SGID e g+s e em forma octal e utilizado utilizado antes das permiss6es de dono/grup%utros. Exemplos:

numero 2, tambem

Obit SGID tambem pode ser utilizado em diretorios. Nesse caso, todos os arquivos criados dentro deste terao como grupo dona 0 mesmo grupo a que 0 diretorio pertence.

stick bit e utilizado em diret6rio~compartilhados entre permiss6es de escrita para estes), on de seja desejavel que outros criados. Em outras palavras, um diret6rio com a stick crie arquivos, mas os outros usuarios nao poderao remover stick bit eo diret6rio /tmp.

vanos usuanos (em combinac;:ao com usuarios nao acessem os arquivos por bit ligado permite que qualquer usuario estes arquivos. Um exemplo do usa do

A representac;:ao textual do stick bit e atraves do +t e em formate antes das permiss6es de dono/grup%utros. Exemplos genericos:

octal e atraves do numero I,

"A

umask pode ser de grande utilidade para temporarios, pois desta forma, pode-se bloquear arquivos, sem precisar recorrer ao chmod.

programas que criam arquivos/diret6rios 0 acesso de outros usuarios e a criac;:ao de

l:Il

Modifique a umask somente se necessario. E precise atenc;:ao antes de escolher a umask, pais um valor mal escolhido podera causar problemas de acesso a arquivos, diret6rios ou programas nao sendo executados. Par padrao, quando um usuario e criado, e criado um grupo com a mesmo nome de usuario. possivel visualizar estas informac;:6es com a comando id.

ll.J

ll.J

0 comando chmod nao permite a mudanc;:a das permiss6es de links simb61icos, au seja, as permiss6es devem ser mudadas no arquivo alvo do link.

l:Il

E possivel copiar permiss6es de acesso do arquivo diretamente. Par exemplo: se a usuano digitar chmod o=u, as permiss6es de acesso dos outros usuarios (0) serao identicas ao do do no
(u).

Este laborat6rio tem por objetivo longo do capitulo. Siga os procedimentos requisitado. abaixo,

aprimoramento

da utilizac;ao dos comandos demonstrados

ao

anotando

os resultados

ou respondendo

as perguntas,

quando

2. Altere as permiss5es do arquivo arql


permissao, arquivo.
0

para que 0 dona do arquivo tenha qualquer tipo de grupo 56 tenha acesso de leitura e escrita e os outros usuarios 56 possam ler 0

3. Altere as permiss5es do arquivo arq2 para que somente

usuario dona do arquivo tenha todas as permiss5es. Em seguida, copie arq2 para 0 diret6rio /tmp, acesse 0 sistema como outro usuario (pec;a ajuda ao instrutor) e tente acessar 0 arquivo . 0 que acontece?
0

4. Adicione agora a permissao do arq2 para que qualquer outro usuario diferente do dona do
arquivo e do grupo dona do arquivo possuam permissao de leitura. sistema como outro usuario. 0 que a.contece? Em seguida, acesse
0

5. Quais sac as permiss5es do diret6rio /tmp? Modifique


as mesmas permiss5es que o/tmp.

diret6rio -/testes

para que ele tenha

6. Acesse

0 sistema como root eerie um arquivo arq3 dentro do diret6rio -/testes, que tenha 0 SUID habilitado. Em seguida, tente Iistar 0 arquivo com 0 seu usuario do sistema, visualizando as permiss5es. Quais as permiss5es mostradas? Voce possui permiss5es para visualizar 0 arquivo?

Este laborat6rio tem por objetivo 0 aprimoramento da utilizac;ao dos comandos demonstrados longo do capitulo, utilizando tambem comandos ja aprendidos em capitulos anteriores.

2. Crie um link simb61ico em /tmp para


de aproposSoftLink.

arquivo apropos (do seu diret6rio home). com

nome

3. Crie um link direto em seu diret6rio home para


o nome de aproposHardLink.

arquivo apropos (do seu diret6rio home). com

4. Liste os arquivos
anteriormente

do seu diret6rio home e repare as permiss6es e dos links que estao apontando para ele.

do arquivo

copiado

6. Altere as permiss6es
aconteceu?

do link aproposSoftLink,

criado anteriormente,

para ugo=r.

0 que

7. Fac;a com que a arquivo apropos do seu diret6rio home seja da propriedade de outro usuario (escolha outro usuario do sistema - pec;a ajuda ao instrutor, se necessaria). 0 que acontece?

8. Remova todos as arquivos e links do diret6rio home do usuario aluno que foram criados neste
exercfcio.

.:3 Guia Foca GNU/Linux - Capitulo 13 - Permiss5es de acesso a arquivos e diret6rios

http://focalinux.cipsga.org.br/guia/intermediario/ch-perm.htm
.:3 Arquivos no Linux e Permiss5es (em ingles)

http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilesp.htm Permiss5es e seguranc;:a no Linux (em ingles) http://www.linuxsecurity.com/docs/LDP/Security-HOWTO/file-security.html a Paginas de manual dos comandos chown(l) e chmod(l)

Você também pode gostar