Guia do Linux/Avançado/Restrições de acesso, recursos e serviços/Restrições de acesso a programas/diretórios/arquivos usando grupos
Restrições de acesso a programas/diretórios/arquivos usando grupos
[editar | editar código-fonte]Usuários podem ter o acesso liberado a diretórios/arquivos execução de programas de acordo com o grupo que pertencem. Este é um recurso valioso na administração de sistemas Unix
que se bem usado, aumenta as restrições de acesso e segurança no acesso/utilização de programas em um ambiente de trabalho. Usuários de sistema tendem a usar o usuário root para fazer tarefas como conexão com internet, utilização da placa de som, modem, etc. e as vezes nem sabem que isso pode ser feito através do mesmo usuário adicionando este a um grupo específico.
Esta tarefa pode ser feita com o comando adduser usuário grupo ou editando manualmente os arquivos /etc/group
e /etc/gshadow
. Podemos ter as seguintes situações facilitadas com o uso de grupos:
- Usar a placa de som. Os dispositivos usados pela placa de som como
/dev/audio
,/dev/dsp
,/dev/sndstat
, etc. normalmente tem permissão leitura/gravação para o usuário root e grupo audio (cheque com o comando ls -la /dev/audio). Para autorizar determinados usuários usar a placa de som basta adiciona-los neste grupo: adduser usuario audio. - Conectar a Internet. Normalmente o utilitário ppp tem as permissões SUID root e grupo dip. Adicionamos o usuário a este grupo: adduser usuario dip. Agora ele poderá conectar/desconectar a internet sem a intervenção do usuário root.
OBS Certamente o usuário terá acesso aos arquivos de configuração da discagem do ppp
e consequentemente a senha de conexão internet, e esta senha é a mesma usada no e-mail primário do provedor (com o mesmo nome da conta). Esta mesma situação pode acontecer com outros programas que autorize o acesso a grupos, é importante que conheça bem as permissões do programa e entender se existem riscos.
- Utilizar o modem. Um bom grupo para permitir a utilização do modem é dialout. O dispositivo utilizado pelo modem (não seu link) deve ter permissões leitura/gravação para o usuário root e grupo dialout. Cadastrando o usuário neste grupo autorizará a utilização do modem: adduser usuario dialout.
- Permitir que diversos usuários compartilhem um mesmo diretório. Isto é útil quando muitas pessoas estão desenvolvendo um mesmo projeto. Siga estes passos:
- Crie um novo grupo no sistema:
groupadd gp1
, a opção -g permite selecionar manualmente a GID. Opcionalmente você poderá usar um grupo já existente no sistema (veja o arquivo/etc/group
). - Crie o diretório que será usado para armazenar os arquivos deste grupo de usuários:
mkdir projeto1
). - Mude o dono/grupo do diretório: chown root.gp1 projeto1/
- De permissões de leitura/gravação para o dono/grupo do diretório, vamos também incluir a permissão SGID para que todos os arquivos criados dentro deste diretório pertençam ao mesmo grupo e não ao grupo primário do usuário, assim todos os usuários terão acesso: chmod 2770 projeto1
- Agora cadastre os usuários que deverão ter acesso ao diretório
projeto1/
no grupo gp1, somente estes usuários e o root terão acesso ao diretório (permissões 2770). - É interessante também mudar a "umask" do usuário de 022 para 002 (ou equivalente) para que os novos arquivos criados tenham permissão de leitura/gravação para o grupo gp1. Caso contrário, lembre-se de modificar as permissões de seus arquivos manualmente. Um ótimo comando para fazer isso (sem afetar diretórios) é: find . -type f -user usuario1 -exec chmod 0660 \{\} \;. Este comando parece estranho mas é excelente! um chmod -R 0660 afetaria até os diretórios, imagine o caos.
- Crie um novo grupo no sistema:
A maioria das distribuições Linux
vem com uma boa política de grupos para permitir um controle eficaz de recurso. Se você quer saber quais arquivos em seu sistema pertencem a determinado grupo (útil para saber o que o usuário terá acesso se adiciona-lo à quele grupo) execute o comando:
find / -group nome_do_grupo