Vous êtes sur la page 1sur 11

Permisses de acesso a arquivos e diretrios

Neste captulo estudaremos o sistema de permisses no Linux que permite ao administrador do sistema (root) definir o nvel de permisso de acesso dos usurios, grupos e outros aos arquivos e diretrios e programas executveis. s permisses de acesso protege o sistema de algumas invases e respectivos programas no autori!ados. "or exemplo no Linux, podemos impedir que algum programa malicioso instale na maquina, delete algum arquivo ou que se#a transferido algum deles para outras pessoas via rede, de modo a invadir o sistema. $ Linux assim como sistemas %&' derivados do (nix, so muito seguros e confiveis, podendo ser utili!ado para o seu micro ou sua empresa.

Permisses de acesso e privilgios


$ Linux gerencia o sistema de privil)gios em * tipos+ , privil)gio de dono , privil)gio de grupo , privil)gio de outros - cada um desses tipos so divididos em * nveis de permisses de acesso , permisso de leitura ( r ) , permisso de escrita ( w ) , permisso de execu.o ( x ) /eralmente os arquivos e diretrios so criados com uma permisso padro, mas podendo ser modificadas pelo comando umask que veremos adiante especificado nos arquivos /etc/profile que define para todos os usurios do sistema e no arquivo do usurio /home/usuario/.bash_profile no 'e0ian ou /home/usuario/.profile no (0untu. "ermisses padres para diretrios+ , dono 1 ler (r), escrever (2) e executar (x) , grupo 1 ler (r) e executar (x) , outros 1 ler (r) e executar (x) "ermisses padres para arquivos+ , dono 1 ler (r) e escrever (2) grupo 1 ler (r) , outros 1 ler (r)

!onos" grupos e outros !onos 3 aquele usurio que criou o arquivo ou diretrio, ou o dono definido pelo administrador do sistema (root) para um determinado arquivo ou diretrio. 4orresponde ao arquivo ou o diretrio do usurio. $ nome do dono do arquivo5diretrio ) o mesmo do usurio usado para entrar no sistema. s permisses de acesso somente pode ser modificadas pelo dono. $ id do usurio e o nome do grupo so gravados /etc/passwd e /etc/group. "or se tratarem de arquivos texto, 'evemos tomar muito cuidado ao edita1los, pois eles possuem as informa.es de usurios e grupos do sistema. #rupos 3 o grupo ao qual o usurio dono pertence e seu arquivo de configura.o est locali!ado em 5etc5group, esse recurso possi0ilita que vrios usurios ten6am acesso ao mesmo arquivo do sistema. 4ada usurio pode pertencer a um ou mais grupos podendo acessar arquivos pertencentes ao mesmo grupo que o seu, mesmo eles sendo de outro dono. $utros &o grupos externo de usurios que no pertencem ao grupo padro do arquivo ou diretrio. 7uando ) criado um novo usurio, o grupo que ele pertencer corresponde o mesmo de seu primeiro grupo, sendo o 8' do grupo c6amado de /8' (/roup 8'). $ usurio no entanto poder ser inserido em mais grupos se dese#ar.

%isuali&ando privilgios e permisses


-xemplo+ ' ls (l /home/usuario (visuali!a privil)gios e permisses de arquivos) ' ls (ld /home/usuario (visuali!a privil)gios e permisses de diretrios) ' ls (la /home/usuario (visuali!a privil)gios e permisses de arquivos ocultos) )xemplo para diretrios* ' mkdir /home/usuario/teste ' ls (la /home/usuario/teste ' cd /home/usuario/teste ' ls (a (exi0e o prprio diretrio e o diretrio anterior (pai)) ' ls . (exi0e o prprio diretrio) ' ls .. (exi0e o diretrio anterior (pai))

)xemplo para arquivos* ' cd /home/usuario/teste ' touch arquivo+ ' ln (s arquivo+ link+ (com a op.o 1s, no entra na contagem de 6ard lin9s) ' ln arquivo+ link, (sem a op.o 1s, entra na contagem de 6ard lin9s) "ara sa0er a contagem de 6ard lin9s e inodes(0locos de informa.es), ser necessrio usar o comando ls (li. ' ls (li total : ++-.+-/ 1r21r11r11 ; aluno< aluno< : ;::=1:<1:* <<+*> arquivo< <<>?<=: lr2xr2xr2x < aluno< aluno< = ;::=1:<1:* <<+*> lin9< 1@ arquivo< ++-.+-/ 1r21r11r11 ; aluno< aluno< : ;::=1:<1:* <<+*> lin9; Aepare na <a coluna a quantidade de inodes e na *a coluna a quantidade de lin9s so a mesma entre o arquivo< e o lin9;, # o lin9< no entra na contagem de lin9s. , $0s 1 os lin9s sim0licos (atal6os para arquivos) no interferem na contagem de 6ard lin9s (referBncia direta ao arquivo). Na Ca coluna o taman6o em 0Dtes do arquivo ou diretrio podendo ser exi0idos pelo comando ls (lh (em E%, F% e /%), na Ga coluna a data e 6ora da Hltima modifica.o e na Ia coluna o nome do arquivo ou diretrio. primeira posi.o do tra.o (1) representado por uma letra ou por um 6fen 1 , que indica o tipo do arquivo e os ? tra.os (1 1 1 1 1 1 1 1 1) restantes so exi0idas as permisses de acesso dividas em * colunas com * tra.os (1 1 1) cada uma podendo ter permisses de leitura (r), escrita (2) e execu.o (x).

(ma letra representa uma permisso e um ou mais tra.os representam permisses negadas, sendo assim os <: tra.os so divididos em > colunas onde na <a coluna ) exi0ido o tipo de arquivo, na ;a coluna so exi0idas as permisses do dono, na *a coluna so exi0idas as permisses do grupo e na >a coluna so exi0idas as permisses de outros. Na <a coluna ) onde define o tipo de arquivo que pode ser+

Na ;a coluna, *a coluna e >a coluna so exi0idas as permisses de acesso que podem ser+ Permiss0o de acesso r w x 1ignificado "ermisso para leitura "ermisso para escrever "ermisso para executar. (para diretrios permite a navegaco pelo diretrio atrav)s do comando cd)

2ipos de permisses
7uanto aos tipos de permisses aplicadas ao dono, grupo e outros usurios, temos * permisses 0sicas, ao qual podemos visuali!ar a0aixo+

letra inicial nos indica que tipo de arquivo estamos tra0al6ando no momento. (m J1J significa que ) um arquivo comum. 4aso for um JdJ ) considerado um diretrio, e um JlJ um lin9 sim0lico direcionando a um arquivo do sistema. $ primeiro campo Jr2xJ, nos mostra qual ) a permisso de acesso ao campo JusurioJ. Neste caso o usurio possui a permisso de ler (r), escrever (2) e executar (x). $ segundo Jr2xJ nos mostra as permisses de acesso ao grupo do arquivo. Neste caso, o grupo possui permisso de ler (r), escrever (2), e executar(x).

$ terceiro campo Jr2xJ, nos mostra qual ) a permisso de acesso para os Joutros gruposJ. Neste caso todos os usurios que no so donos do arquivo, e nem fa!em parte do grupo Joutros gruposJ possuem permisso para ler(r) , escrever(2) e executar(x).

Permisses simblicas
"ermisses sim0licas, so expresses de permisses, diferentes de valores octais que atri0uem permisses facilmente a arquivos e diretrios podendo ser aplicadas atrav)s de letras, operadores e valores separados por uma vrgula. 0aixo temos a ta0ela correspondente a letra e sua representa.o+ Letra u g o a $perador 3 ( 4 Lalor r w x t s Aepresenta.o (surio /rupo $utros Kodos Aepresenta.o dicionar permisses Aemover permisses 'efinir permisses diretamente Aepresenta.o Leitura -scrita execu.o %it de stic9D 'efine (8' ou /8'

Permisses $ctais
No modo octal (opcional), vocB poder modificar facilmente a permisso do dono, grupo e outros, sem precisar gerenciar cada um separadamente especificando uma permisso num)rica especial, o dono, o grupo e outros. 0aixo temos a seguinte ta0ela especificando a permisso especial+ "ermisso especial : < ; * > C 'escri.o Nen6uma permisso especial ativada %it stic9D ativado 1 permisso de execu.o (x) %it setgid ativado 1 permisso de escrita (2) %its stic9D e %it setgid ativados 1 permisso de escrita e execu.o (2x) %it setuid ativado 1 permisso de leitura (r) %its stic9D e %it setuid ativados 1 permisso de leitura

G I

e execu.o (rx) %its setuid e %it setgid ativados 1 permisso de leitura e escrita (r2) %its setuid, setgid e stic9D ativados 1 permisso de leitura, escrita e execu.o (r2x)

0aixo temos a seguinte ta0ela especificando as permisses do dono, grupo e outros+ !ono" #rupo e $utros 6 + , 9 : ; / !escri50o Nen6uma permisso "ermisso de execu.o 7x8 "ermisso de escrita 7w8 "ermisso de escrita e execu.o 7wx8 "ermisso de leitura 7r8 "ermisso de leitura e execu.o 7rx8 "ermisso de leitura e escrita 7rw8 "ermisso de leitura, escrita e execu.o 7rwx8

Permisses )speciais
No Linux no existem somente as permisses padres (r2x), existem tam0)m as permisses de acesso especias, que permitem um controle a mais so0re as permisses padres+

<it 1etuid dono do 1etgid

1ignificado 7uando este 0it estiver ativado, o arquivo pode ser executado como arquivo. (no utili!ado em diretrios) 7uando este 0it estiver ativado, o arquivo pode ser executado como um mem0ro do grupo do arquivo. (quando um arquivo ) criado dentro de um diretrio com este 0it ativado, o arquivo ser criado com o mesmo nome do grupo do diretrio) 7uando este 0it estiver ativado em um diretrio, um arquivo criado neste diretrio somente poder ser apagado pelo dono.

1tick=

>omandos manipula50o de privilgios e permisses


chmod 1 altera permisses de acesso a arquivos e diretrios chmod 7op5es8 7modo8 7arquivo8 $p.o (c (? (f (v -xemplos+ ' chmod (v u3x arquivo 1r2xr11r11 ; aluno< aluno< ; ;::=1:<1:* <<+>; arquivo (adiciona permisso de execu.o ao dono do arquivo (u) ' chmod u3rwx"g4w"o(r arquivo 1r2x121111 ; aluno< aluno< ; ;::=1:<1:* <<+>; arquivo (adiciona permisso de leitura, escrita e execu.o ao dono (r2x) do arquivo (u), atri0ui permisso de escrita (M2) ao grupo (g) e nega permisso de leitura(1r) a outros (o). ' chmod /:: arquivo 1r2xr1xr1x ; aluno< aluno< ; ;::=1:<1:* <<+>; arquivo (permisso de leitura, escrita e execu.o (I M r2x) ao dono, permisso de leitura, e execu.o (C M rx) ao grupo e para outros) ' chmod +/:6 /home/aluno+/pasta dr2xr1x11K ; aluno< aluno< >:?G ;::=1:<1:* <C+*? pasta (repare o K no final da lin6a, ativando o 0it stic9D no diretrio com permisso de leitura, escrita e execu.o (I M r2x) ao dono, permisso de leitura, e execu.o (C M rx) ao grupo e nen6uma permisso para outros) @ chmod -/:: /etc/init.d/meu_script 1r2sr1xr1x < root root : ;::=1:<1:* <C+*I 5etc5init.d5meuNscript (repare o s na coluna do dono, ativando o 0it &et(8' no script com permisso de leitura, escrita e execu.o (I M r2x) ao dono, permisso de leitura, e execu.o (C M rx) ao grupo e para outros) 'escri.o -xi0e informa.es so0re cada arquivo alterado ltera recursivamente as permisses dos diretrios e de seus conteHdos No exi0e mensagens de erro 'escreve detal6adamente as altera.es de cada arquivo

chown 1 Fuda dono de um arquivo5diretrio ou grupo chown 7op5es8 7dono/grupo8 7diretrio/arquivo8 (v (f (c (? -xi0e arquivos enquanto so alterados No mostra mensagens de erro durante a execu.o do programa. -xi0e somente arquivos alterados. ltera dono e grupo recursivamente

)xemplos* @ chown (v root.aluno+ arquivo trocado dono de OarquivoP para root+aluno< (Fuda o dono para o root e o grupo para aluno+) @ chown (? aluno+ pasta (Fuda somente o dono para aluno+ recursivamente da pasta e todos os su0diretrios)

chgrp 1 Fuda o grupo de um arquivo5diretrio chgrp 1c 1f 1v 1A 7op5es8 7grupo8 7arquivo/diretrio8 -xi0e somente os arquivos5grupos modificados. No exi0e mensagens de erro. 'escreve as altera.es de atri0utos. ltera os grupos de arquivos5su01diretrios recursivamente

)xemplos* @ chgrp (v root arquivo alterado o grupo de OarquivoP para root (Fuda o grupo para root do arquivo) @ chgrp (? aluno+ pasta (Fuda somente o grupo para aluno< recursivamente da pasta e todos os su0diretrios) Amask 1 ltera o valor padro da mscara de cria.o de arquivos e diretrios umask 7mBscara8

mscara padro do umas9 para cria.o de arquivos em sistemas Linux 5(nix ) :;; definidas nos arquivos /etc/profile para todos os usurios do sistema e /home/usuario/.bash_profile ou /home/usuario/.profile para apenas um usurio. "ara fa!er o clculo para arquivos ) utili!ado seu valor binBrio (: ou <) e no o valor octal (: a I), onde ) mostrado na ta0ela de valores octais e 0inrios a0aixo. $ valor padro do umas9 ) su0trado do valor ;;;, ou se#a ;;; ( 6,, 4 ;-- 7rw" r e r8, definindo a cria.o de arquivos com permisses de leitura e escrita para o dono, e leitura para o grupo e outros.

"ara fa!er o clculo para diretrios ) o mesmo procedimento para arquivos, onde ) utili!ado o valor ///, ou se#a /// ( 6,, 4 /:: 7rwx" rx e rx8, definindo a cria.o de diretrios com permisses de leitur a, escrita execu.o para o dono, e leitura e execu.o para o grupo e outros. 0aixo segue um trec6o dos arquivos de configura.o onde podem ser editados e alterados permanentemente pelo usurio ou pelo administrador do sistema. @ /etc/profile umas9 :;; @ /home/usuario/.bash_profile umas9 :;; ou @ /home/usuario/.profile umas9 :;; (tili!ando o comando umas9 sem parQmetros, ser ento exi0ido o valor padro deste comando+ o digitarmos o comando JumaskJ, ser exi0ido ento o seguinte valor octal+ ' umask ::;; 4aso queira alterar este valor, dever ento utili!ar o comando Jumas9J com o valor da mscara que dese#ar, neste caso foi escol6ido o valor ;;;. ' umask ,,, ' umask ;;; No exemplo acima a o valor da mscara foi alterado para ;;;. $ comando umas9 possui * dgitos com valores octais que representa as permisses a serem retiradas para o dono, grupo e outros. 0aixo segue a ta0ela com os valores octais e 0inrios e suas permisses a serem retiradas

2abela de valores octais" binBrios e permisses Lalor octal : < ; * > C G I Lalor %inrio ::: ::< :<: :<< <:: <:< <<: <<< "ermisses r2x r21 r1x r1 1 12x 121 1 1x 111

"ara entender realmente como o umas9 funciona, devemos ol6ar os valores 0inrios em 0its da mscara sendo J6J permisso ativada e J+J permisso desativa, e no o nHmero octal. 7uanto a cria.o de arquivos e diretrios, 6 uma pequena diferen.a. Na cria.o de arquivos, eles no podem ser executveis. "ara fa!er um teste criaremos o umask 6,/, editando o arquivo /home/usuario/.bash_profile ou /home/usuario/.profile do usurio inserindo no final do arquivo a seguinte lin6a.

#rupos Privados de AsuBrios


"ara o gerenciamento de grupos privados de usurios ) utili!ado o comando o gpasswd, onde ) recomendado no desenvolvimento de pro#etos onde envolvam um grupo de usurios do mesmo grupo tra0al6ando em con#unto em um determinado pro#eto salvando arquivos em um diretrio. 0aixo segue um exemplo onde ser criado um grupo c6amado alunos e ; usurios aluno+ e aluno, pertencentes ao mesmo grupo, que iro salvar arquivos em con#unto no diretrio /home/proCeto+. 4rie o grupo alunos @ groupadd alunos 4rie uma sen6a para o grupo alunos @ gpasswd alunos Fudando a sen6a para o grupo alunos Nova &en6a + RRRRRRRR 8nforme a nova sen6a novamente + RRRRRRRR 4rie o diretrio /home/proCeto+ @ mkdir /home/proCeto+ Fude o dono para root e grupo para alunos do diretrio /home/proCeto+. @ chown (? root.alunos /home/proCeto+ ltere as permisses para que os usurios do grupo alunos possam criar e salvar arquivos e diretrios no diretrio /home/proCeto+ com permisses de leitura, escrita e execu.o e nen6uma permisso para outros. "ara manter o privil)gios do grupo alunos, nos arquivos e diretrios criados se#am mantidos ative o <it#D! 7,//68 no diretrio. @ chmod (? ,//6 /home/proCeto+ 4rie os usurios que iro fa!er parte do grupo alunos @ adduser aluno+ @ adduser aluno,

dicione os usurios aluno+ e aluno, ao grupo alunos com o comando gpasswd usando a op.o (a. @ gpasswd (a aluno+ alunos dicionando usurio aluno< ao grupo alunos @ gpasswd (a aluno, alunos dicionando usurio aluno* ao grupo alunos "ara exi0ir o nome do grupo dos usurios execute o comando groups @ groups aluno+ aluno< + aluno< alunos @ groups aluno, aluno; + aluno; alunos "ara remover um usurio do grupo execute o comando gpasswd com a op.o (d @ gpasswd (d aluno+ alunos Aemovendo usurio aluno< do grupo alunos "ara mudar um usurio do seu grupo para o grupo alunos ' newgrp alunos &en6a + RRRRRRRR "ara sair do grupo alunos e retornar ao seu grupo ' exit

Vous aimerez peut-être aussi