Você está na página 1de 5

Exercício Máquina Virtual

Administração de Usuários – Permissões 
Para fazer os exercicios que iremos praticar agora, seria interessante você estar com 4 terminais
abertos.. para não se perder....
Ou falando no modo texto, 4 shells (TTY1, TTY2, TTY3 e TTY4).
Vamos imaginar que temos vários usuários na máquina e eles irão acessar um diretório público, que
terá os documentos de uma determinada área da minha empresa...
Então terei usuários que poderão acessar esse diretório, e teremos usuários que não poderão.

No primeiro terminal estaremos como root... Lembrando que vamos usar 4 terminais:
1 ­ root
2 ­ Usuário debian que iremos criar ainda
3 ­ Usuário gnu a ser criado ainda
4 ­ Usuário tux a ser criado ainda

Criando um diretório público dentro de /mnt chamado documentos:
#cd /mnt/
#mkdir documentos

Verifique se no diretório que criamos acima o dono do mesmo é root e seu grupo também root:
#ls -ld documentos/
drwxr-xr-x 2 root root 4096 Mar 7 16:15 documentos/

Crie o grupo que será definido para esse diretório, para que um conjunto de usuários tenha acesso ao
mesmo:
#groupadd diretoria

Verifique se o grupo foi criado:
#cat /etc/group | grep diretoria
diretoria:x:1004:

Defina que o grupo do diretório /mnt/documentos pertence ao grupo diretoria e não ao root:
#chown root.diretoria documentos/
root@trinity:mnt#ls -ld documentos/
drwxr-xr-x 2 root diretoria 4096 Mar 7 16:15 documentos/

Crie os usuários debian e gnu que terão acesso ao /mnt/documentos e o usuário tux, que não terá acesso
(obs: a senhas de todos pode ser a letra “x”):
#adduser debian
#adduser gnu
#adduser tux
Logue­se como debian, gnu e tux nos terminais que foi solicitado no início. Depois, volte ao terminal
onde está logado como root, confira se debian, gnu e tux esistem no arquivo /etc/passwd:
#cat /etc/passwd | grep debian
debian:x:1001:1001:,,,:/home/debian:/bin/bash
#cat /etc/passwd | grep gnu
gnu:x:1005:1005:,,,:/home/gnu:/bin/bash
#cat /etc/passwd | grep tux
tux:x:1006:1006:,,,:/home/tux:/bin/bash

Verifique a qual grupo pertence os usuários debian, gnu e tux:
#groups debian
debian : debian
mnt#groups gnu
gnu : gnu
#groups tux
tux : tux

Adicione os usuários debian e gnu no grupo diretoria:
#gpasswd -a debian diretoria
Adding user debian to group diretoria
#gpasswd -a gnu diretoria
Adding user gnu to group diretoria

Verifique os grupos dos usuários debian e gnu para checar se os mesmos fazem parte do grupo
diretoria:
#groups debian
debian : debian diretoria
#groups gnu
gnu : gnu diretoria

Verifique como está o grupo diretoria no /etc/group:
#cat /etc/group | grep diretoria
diretoria:x:1004:debian,gnu

A permissão por padrão para qualquer diretório criado é 755. Como os usuários debian e gnu
pertencem ao grupo de diretoria, faça um teste para criar um arquivo dentro do diretório documentos
com os usuários debian e gnu:
debian@trinity:~$touch /mnt/documentos/teste.txt
touch: cannot touch `/mnt/documentos/teste.txt': Permission denied

gnu@trinity:~$touch /mnt/documentos/teste.txt
touch: cannot touch `/mnt/documentos/teste.txt': Permission denied

Como os usuários debian e gnu não puderam criar o arquivo porque não tem permissão de escrita no
diretório documentos, dê permissão de escrita para que os usuários que pertencem ao grupo diretoria
possam acessar esse diretório sem problemas (permissão de gravação w=2), mas somente os usuários
que pertencem ao grupo diretoria. O restante do povo não pode acessar, então deixe a permissão para o
mundo como 0 (que significa nenhuma permissão):
#chmod 770 documentos/
root@trinity:mnt#ls -ld documentos/
drwxrwx--- 2 root diretoria 4096 Mar 7 16:15 documentos/
Depois de ter definido as permissões acima, tente acessar o /mnt/documentos com o usuário tux:
tux@trinity:~$ cd /mnt/documentos/
-su: cd: /mnt/documentos/: Permission denied
Como usuário debian e gnu entre no /mnt/documentos e crie um arquivo para testar (obs: antes de fazer
o teste, deslogue e logue novamente os usuários debian e gnu para que as permissões anteriores tenham
efeito):
debian@trinity:/mnt/documentos$ cd /mnt/documentos/
debian@trinity:/mnt/documentos$ touch arq_debian.txt

gnu@trinity:/mnt/documentos$ cd /mnt/documentos/
gnu@trinity:/mnt/documentos$ touch arq_gnu.txt

No terminal que está logado como root, acesse o /mnt/documentos e veja como estão os arquivos
criados pelos usuários:
#cd /mnt/
#ls -l documentos/
total 0
-rw-r--r-- 1 debian debian 0 Mar 7 17:06 arq_debian.txt
-rw-r--r-- 1 gnu gnu 0 Mar 7 17:06 arq_gnu.txt

Pelo que foi listado acima, cada usuário está criando os arquivos sendo eles mesmos os donos;
modifique as permissões de forma que os usuários debian e gnu ao criarem os arquivos no /
mnt/diretoria pertençam ao grupo diretoria, e não ao grupo do usuário que criou o arquivo (permissão
sgid bit):
#cd /mnt/
root@trinity:mnt#ls -l documentos/
total 0
-rw-r--r-- 1 debian debian 0 Mar 7 17:06 arq_debian.txt
-rw-r--r-- 1 gnu gnu 0 Mar 7 17:06 arq_gnu.txt
#chmod g+s documentos/
#ls -ld documentos/
drwxrws--- 2 root diretoria 4096 Mar 7 17:06 documentos/

Crie um outro arquivo como debian e como gnu, e depois, como root, verifique se permissão de sgid bit
foi aplicada corretamente:
#cd /mnt/documentos/
#ls -l arq*
-rw-r--r-- 1 debian diretoria 0 Mar 7 18:07 arq2_debian.txt
-rw-r--r-- 1 gnu diretoria 0 Mar 7 18:08 arq2_gnu.txt
-rw-r--r-- 1 debian debian 0 Mar 7 17:06 arq_debian.txt
-rw-r--r-- 1 gnu gnu 0 Mar 7 17:06 arq_gnu.txt

Como root, apague o primeiro arquivo que debian e gnu criaram pois está incorreto:
#rm arq_debian.txt arq_gnu.txt
rm: remove regular empty file `arq_debian.txt'? y
rm: remove regular empty file `arq_gnu.txt'? y

Pela listagem anterior, verificamos que os arquivos criados está com permissão 644, ou seja... um
arquivo criado pelo usuário debian só poderá ser editado por ele mesmo. Altere a permissão do
diretório /mnt/documentos de modo que qualque usuário do grupo diretoria possa gravar nos arquivos
criados. Para isso, altere apenas o UMASK dos usuários:
OBS: Se a linha de umask no .bash_profile estiver comentada, descomente para que o umask tenha
efeito.
debian@trinity:~$ vim .bash_profile
debian@trinity:~$ logout
ivani@trinity:ivani$su - debian
Password:
debian@trinity:~$ umask
0007

gnu@trinity:~$ vim .bash_profile


gnu@trinity:~$ vim .bash_profile
gnu@trinity:~$ logout
ivani@trinity:ivani$su - gnu
Password:
gnu@trinity:~$ umask
0007

Crie um terceiro arquivo como debian e gnu:
debian@trinity:~$ cd /mnt/documentos/
debian@trinity:/mnt/documentos$ touch arq3_debian.txt

gnu@trinity:~$ cd /mnt/documentos/
gnu@trinity:/mnt/documentos$ touch arq3_gnu.txt

Verifique como root se as permissões estão Ok,ou seja, se agora tem permissão de gravação para o
grupo também nos arquivos criados por debian e gnu:
#cd /mnt/
#ls -ls documentos/
total 0
0 -rw-r--r-- 1 debian diretoria 0 Mar 7 18:07 arq2_debian.txt
0 -rw-r--r-- 1 gnu diretoria 0 Mar 7 18:08 arq2_gnu.txt
0 -rw-rw---- 1 debian diretoria 0 Mar 7 18:24 arq3_debian.txt
0 -rw-rw---- 1 gnu diretoria 0 Mar 7 18:24 arq3_gnu.txt

Apague os arquivos arq2 do debian e gnu:
#rm documentos/arq2_*
rm: remove regular empty file `documentos/arq2_debian.txt'? y
rm: remove regular empty file `documentos/arq2_gnu.txt'? y

Crie um quarto arquivo como debian e gnu:
debian@trinity:/mnt/documentos$ touch arq4_debian.txt
gnu@trinity:/mnt/documentos$ touch arq4_gnu.txt

Como usuário debian, apague o arq3_gnu.txt:
debian@trinity:/mnt/documentos$ ls
arq3_debian.txt arq3_gnu.txt arq4_debian.txt arq4_gnu.txt
debian@trinity:/mnt/documentos$ rm arq3_gnu.txt
rm: remove regular empty file `arq3_gnu.txt'? y
Como usuário gnu, remova o arq3_debian.txt:
gnu@trinity:documentos$ ls
arq3_debian.txt arq4_debian.txt arq4_gnu.txt
gnu@trinity:documentos$ rm arq3_debian.txt
rm: remove regular empty file `arq3_debian.txt'? y

Com as permissões que está atualmente, cada usuário pode apagar arquivo que é de outro usuário. Para
que isso não ocorra novamente, como root, aplique a permissão /mnt/documentos.
#ls -ld documentos/
drwxrws--- 2 root diretoria 4096 Mar 7 18:34 documentos/
root@trinity:mnt#chmod o+t /mnt/documentos/
root@trinity:mnt#ls -ld documentos/
drwxrws--T 2 root diretoria 4096 Mar 7 18:34 documentos/

Faça o teste novamente, com o usuário debian tentando apagar o arq4 do usuário gnu e o usuário gnu
tentando apagar o arq4 do usuário debian:

debian@trinity:documentos$ ls arq4_gnu.txt
arq4_gnu.txt
debian@trinity:documentos$ rm arq4_gnu.txt
rm: remove regular empty file `arq4_gnu.txt'? y
rm: cannot remove `arq4_gnu.txt': Operation not permitted

gnu@trinity:documentos$ ls
arq4_debian.txt arq4_gnu.txt
gnu@trinity:documentos$ rm arq4_debian.txt
rm: remove regular empty file `arq4_debian.txt'? y
rm: cannot remove `arq4_debian.txt': Operation not permitted

Você também pode gostar