Fundamentos do sistema Linux - usuários e grupos

O Linux foi desenvolvido desde o começo para trabalhar em rede. Por isso, ele possui suporte a usuários e grupos, que garantem uma organização e segurança ao sistema. Neste artigo veremos os conceitos de usuários e grupos, bem como os métodos para manipulá-los.

[ Hits: 153.978 ]

Por: Davidson Rodrigues Paulo em 04/11/2005 | Blog: http://davidsonpaulo.com/


Manipulando grupos



Descrição dos grupos padrão


Por padrão, sistemas GNU/Linux possuem alguns grupos utilizados para permitir o acesso a determinados serviços e privilégios no sistema. Esse grupos estão listados no arquivo /etc/group e são eles:
  • root: Grupo do superusuário;
  • bin e daemon: Programas executados;
  • sys: Grupo do sistema;
  • adm: Grupo administrativo;
  • tty: Acesso a terminais;
  • disk: Acesso à dispositivos de disco;
  • lp: Grupo da impressora;
  • mem e kmem: Acesso à memória do kernel;
  • wheel: Usuários com privilégios próximos ao root;
  • mail: Usado por utilitários de e-mail;
  • news: Usado por utilitários de Usenet news;
  • uucp: Usado pela rede UUCP;
  • man: Usado para acesso a páginas de manual;
  • games: Grupo para guardar recordes de jogos;
  • gopher: Usado pelo utilitário Gopher;
  • dip: Grupo dial-up (PPP, SLIP);
  • ftp: Grupo do daemon FTP;
  • nobody: Grupo de baixa segurança;
  • users: Grupo padrão de usuários em vários sistemas;
  • floppy: Grupo para acesso a discos floppy.

Cada entrada possui o nome do grupo, senha e o ID numérico do grupo (GID).

Criando um novo grupo


Para criar um novo grupo no sistema, utilize o comando groupadd. Sua sintaxe é a seguinte:

# groupadd [-g GID] [-o] [grupo]

Os parâmetros -g e -o são opcionais. Use o parâmetro -g pra especificar manualmente o GID do novo grupo. Utilize valores maiores que 500 e que já não estejam sendo utilizados por nenhum outro grupo. Se quiser usar um GID já utilizado por outro grupo, utilize a opção -o.

Para adicionar usuários ao grupo recém criado, a maneira mais simples é editar diretamente o arquivo /etc/group e adicionar os nomes dos usuários ao final da entrada do grupo, separando-os por vírgula.

Para colocar, por exemplo, os usuários "carlos" e "vitoria" no grupo FG, a entrada ficaria assim:

FG:x:500:carlos,vitoria

Pode-se checar o resultado com os comandos id ou groups. O id exibe na tela as informações sobre a conta do usuário. Seu uso é simples:

$ id [login]

Para ver as informações do usuário "davidson":

$ id davidson
uid=1000(davidson) gid=1000(davidson)
grupos=1000(davidson),20(dialout),24(cdrom),25(floppy),29(audio),44(video)

O comando groups exibe apenas os grupos ao qual o usuário pertence:

$ groups davidson
davidson : davidson dialout cdrom floppy audio video

Mudando de grupo


Todas as ações feitas por um usuário são associadas ao seu UID e GID primários. Assim, mesmo que o usuário pertença a mais de um grupo, ele responderá por apenas um grupo de cada vez. Isto pode ser um problema caso o usuário queira criar um arquivo pertencente a um dos outros grupos que ele faça parte. O comando newgrp possibilita que o usuário mude temporariamente de grupo principal.

Sua sintaxe é a seguinte:

$ newgrp [-] [grupo]

O hífen (-) serve para reinicializar as variáveis de ambiente do usuário.

Assim, se o usuário "vitoria" do exemplo anterior utilizou newgrp para ingressar no grupo FG, quando ela criar um arquivo e der o comando "ls -l arquivo", verá que este pertencerá ao grupo FG:

$ newgrp FG
$ touch arquivo
$ ls -l arquivo

-rw-r--r-- 1 vitoria FG 10332 Jan 20 16:06 arquivo

Excluindo grupos


Para se excluir um grupo usa-se o comando groupdel com a seguinte sintaxe:

# groupdel [grupo]

Após excluir um grupo, deve-se checar manualmente os sistemas de arquivos para garantir que nenhum arquivo permaneça associado ao grupo. Para isto utiliza-se o comando find:

# find / -gid [GID do grupo excluído]

Depois basta trocar o grupo dos arquivos encontrados.

Não se deve remover o grupo primário de um grupo de usuários existentes. Deve-se antes remover os usuários, para então remover o grupo.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Como as informações de usuário são armazenadas no sistema
   3. Manipulando contas de usuários
   4. Manipulando grupos
Outros artigos deste autor

Passo a passo: Fedora autenticando usuários no Active Directory

Por que não migram

Fundamentos do sistema Linux - Gerenciadores de inicialização

Vyatta, o concorrente livre dos roteadores Cisco

Seu Slackware atualizado com SWARET

Leitura recomendada

O Surgimento do Linux

Entendendo a estrutura do Linux

Linguagens de programação: o que são e quais existem?

Guia Introdutório do Linux II

Qual distro escolher

  
Comentários
[1] Comentário enviado por fabio em 04/11/2005 - 08:13h

Meus parabéns Davidson, apesar de se tratar de um artigo sobre fundamentos do sistema, por sua riqueza de detalhes, até mesmo pra usuários avançados esse artigo pode trazer algumas novidades.

E sucesso ao Projeto Bozolinux!!!

[]'s,
Fábio

[2] Comentário enviado por linuxer19 em 04/11/2005 - 15:01h



[3] Comentário enviado por m4sk4r4 em 04/11/2005 - 15:57h


Davidson,

Muito bom o artigo, muito claro, e bem elaborado.



Parabéns.
Gabriel Santana

[4] Comentário enviado por removido em 04/11/2005 - 17:38h

este homem é um professor!!!!
;-))

[5] Comentário enviado por ZX350 em 05/11/2005 - 00:12h

Esse arquivo ficou muito bom fácil entendimento ficou otimo.

[6] Comentário enviado por nixnod em 05/11/2005 - 13:15h

Muito bom mesmo, bem explicativo, =)

[7] Comentário enviado por lennon.jesus em 16/11/2005 - 10:26h

Show de bola!
Ainda tem muita gente que não conhece esses fundamentos.
Parabéns!

XD

Lennon Jesus

[8] Comentário enviado por vvvdracula em 09/02/2007 - 06:28h

Valeu pela ajuda, sintetisando o conhecimento prá aprender mais rapido
;)

[9] Comentário enviado por rickjs em 31/01/2008 - 09:26h

EXCELENTE ARTIGO, ESSES FUNDAMENTOS SÃO FUNDAMENTAIS PRA QUEM, COMO EU, TRABALHA COM SUPORTE LINUX. PARABÉNS

[10] Comentário enviado por joseslei em 24/09/2008 - 09:57h

Ola,

Alguem poderia me ajudar a elaborar um script em shell para adicionar usuarios, com senha padrão?
Ex:
usuarios: escola1
escola2
senha: aluno
...

agradeço desde ja.

[11] Comentário enviado por doradu em 04/02/2010 - 15:38h

tem isso tudo em modo gráfico?

[12] Comentário enviado por victormredes em 29/03/2012 - 22:02h

No caso para exclusão de usuário, os diretórios criados por um determinado usuário, que vem depois a ser excluido do sistema, os diretórios ficam com o UID antigo por exemplo 1001, e o próximo a ser cadastrado vai torna-se dono automaticamente, pois vai pegar o UID 1001. Tem como alterar isso? para que quando for excluso, o root fique dono do diretório? utilizei o parâmetro -r mas ele só apaga a pasta do /home.

[13] Comentário enviado por davidsonpaulo em 29/03/2012 - 22:35h

Tem sim, é só executar o seguinte comando após a exclusão do usuário:

# find / -uid <UID antigo> | xargs chown root:root

Isso vai procurar por todos os arquivos e diretórios que pertenciam ao usuário antigo e fazê-los pertencerem ao root.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts