/

voltar
/

Permissões de acesso de usuário no Linux

PorRenato Amadeu em

Olá pessoal!
Como vão?

Como prometi na coluna passada, vamos tratar de
permissões de acesso de usuário, mas desta vez em
Linux. O primeiro impacto para um usuário muito ligado
em Windows é chocante, pois das janelinhas coloridas vamos
nos deparar com as telas de terminal, comandos, linhas, sintaxes.
Não que o Linux não tenha suas telinhas gráficas
e ferramentas também, mas isso varia de distribuição
para distribuição.

Para uma melhor administração, e
maior abrangência, procurei escrever com comandos nativos
sem o uso de ferramentas como linuxconf e outras que precisem
ser instalados pacotes extras para rodar. Ou seja, você
tendo seu Red Hat, SUSE, Conectiva, Debian, Kurumin e outras vai
poder utilizar-se desses comandos sem se preocupar em instalar
pacotes extras.

Permissões de acesso

Primeiramente vamos ao terminal verificar as permissões
do arquivo ou diretório:
# ls –l

Obs: Caso ainda não tenha
criado um diretório, pode usar o comando mkdir ex:
# mkdir renato
# mkdir <diretório>

O esquema de permissões de arquivos e pastas
se dá pela combinação das letras indicados
à esquerda (na figura). No diretório renato, temos
drwxr-xr-x como permissões, o user root como proprietário
e o grupo root como grupo.

Em permissões temos sempre a seguinte estrutura

_   rwx
     rwx
      rwx

     user     group
    others

Onde:
r = read (ler)
w = write (escrever)
x = execute (executar)

Os 3 primeiros caracteres dizem respeito às
permissões do usuário proprietário. Os 3
seguintes dizem respeito ao grupo e, por fim, os 3 últimos
definem as permissões dos outros usuários que não
pertencem ao grupo e não são proprietários.
Exemplo:

_ r w – r – –     –
– –
            aluno    
aluno                       cartasdoc

O arquivo cartasdoc tem permissão de ler
e escrever para o usuário criador, ler para o grupo e permissão
negada para outros usuários.

Definindo as permissões

Pense na seguinte relação:

Exec, gravação e leitura

(7 = 1+2+4)

Gravação e leitura

(6 = 2+4)

Leitura e execução

(5 = 4+1)

Read

(4)

Execução e gravação

(3 = 1+2)

Write

(2)

Execute

(1)

Nenhuma permissão

(0)

Com a utilização do comando chmod,
podemos definir as permissões através de 3 algarismos:
uma para usuário proprietário, outro para grupo
e outro para outros. Exemplo:

# chmode 764 arquivo

Onde o 7 significa execução, gravação
e leitura para o usuário proprietário(1ª posição);
o 6 significa gravação e leitura para grupo (2ª
posição) e, finalmente, o 4 significa leitura para
outros usuários (3ª posição).

Grupos

Adicionando um grupo

Para criar um grupo utilizamos o comando groupadd.
Exemplo:
# groupadd contabil

Para Criar usuários utilizamos o comando
useradd. Exemplo:
# useradd r_amadeu

Para definir a senha do usuário, use o comando
passwd:
# passwd r_amadeu

O próximo passo é definir os membros
do grupo. Definindo um membro administrador:
# gpasswd –a r_amadeu contabil
sintaxe: gpasswd –a <usuário>
<grupo>

Obs: O administrador (pode ser
um usuário comum) poderá adicionar membros ao grupo
mas não poderá removê-los.

Adicionando o administrador (através do comando
gpasswd):
# gpasswd –A r_amadeu contabil
sintaxe: gpasswd –A <usuário>
<grupo>

E finalmente vamos atribuir o arquivo ou diretório
ao grupo criado: comando chgrp.
#chgrp contabil renato
sintaxe: chgrp <grupo> <diretório
ou arquivo>

A mudança pode ser visualizada novamente
como comando ls –l.

Vejam que o grupo do diretório agora é
o grupo contábil.

Método de delegação
de acesso

Usuário1
Usuário2   ->
 grupo1   ->
 acessa   ->
 recurso
Usuário 3

Vários usuários pertencem a um grupo
e as permissões são dadas ao grupo, provendo assim
acesso à vários usuários ao mesmo recurso
de maneira inteligente.

Nesta operação podemos fazer uma
observação na comparação Windows 2K
x Linux. Percebam que no Windows temos a ACL que nos permite definir
N grupos que acessam uma pasta. No Linux não temos ACL.
Temos um sistema herdado no Unix onde o sistema de delegação
de acesso nos permite apenas uma relação 1 para
1. Mas existe como implementar ACLs no Linux, através do
fileutils q é um pacote extra a ser instalado. Creio que
em futuras versões do Linux esse suporte já esteja
presente nativamente.

Atenção: Ao mover os arquivos, eles
sempre mantém suas permissões de acesso.

Comandos úteis

Criar diretório:
# mkdir <diretório>

Apagar diretório:
# rmdir <diretório>

Remover usuário:
# userdel <usuário>

Remover grupo:
# groupdel <grupo>

Verificar os usuários que o sistema possui:
(os uid acima de 500 são usuários do sistema)
# cat /etc/passwd

Verificar os grupos que o sistema possui:
# cat /etc/groups

Espero que ter ajudado. Um grande abraço,
fiquem com Deus e até a próxima.

 

Deixe um comentário! 6

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentando como Anônimo

  1. Me ajudou muito.
    mas me restou uma duvida. Como faço para visualizar quais usuários acessam uma pasta e os tipos de permissões que esses usuários possuem nela?

leia mais