Como gerenciar usuários e grupos

Qualquer administrador de sistemas, seja qual for o sistema operacional, tem como tarefa primária a administração de usuários e grupos. Essa administração engloba, entre outras coisas, criar, remover e cuidar de usuários e grupos. Neste artigo tenho a intenção de mostrar como criar, remover, alterar informações e senha, além de planejar a política para criação de usuários e grupos.

[ Hits: 276.941 ]

Por: Armando Martins de Souza em 29/04/2010


Gerenciamento



Como qualquer sistema operacional multitarefa e multiusuário, o administrador do sistema tem como grande desafio o gerenciamento de usuários e grupos. Por este motivo é importante estarmos preparados para administrá-los diretamente sem a utilização de ferramentas que facilitem isso (ex.: webmin), usando apenas os comandos básicos do sistema operacional, isso irá proporcionar a administração em qualquer distribuição.

Comandos:
  • useradd: Comando utilizado para criação de um usuário.
  • userdel: Comando utilizado para remoção de um usuário.
  • usermod: Comando usado para modificar os dados de um usuário.
  • passwd: Comando usado para definir e ou modificar a senha de um usuário.
  • groupadd: Comando usado para criar um grupo.
  • groupdel: Comando usado para remover um grupo.
  • groupmod: Comando usado para modificar os dados de um grupo.

Criando um usuário

Para que seja possível logar no sistema o usuário deverá ter um username (login) e uma senha (password). Para que isso seja possível usaremos os comandos "useradd" e "passwd". Abaixo explicarei como é a sintaxe dos comandos e suas opções:

Comando useradd

Sintaxe: useradd [opções] <username>

Opções:
  • -d - Caminho do diretório home do usuário.
  • -g - Especifica o grupo do usuário.
  • -c - Inclui um comentário referente ao usuário, tais como nome, setor, etc
  • -s - Especifica o shell de comando que o usuário irá utilizar.
  • -m - Cria o diretório home do usuário e copia os arquivos de /etc/skel/ para o home criado (diretório onde se encontram os arquivos default do usuário, futuramente iremos falar sobre ele). Em algumas distribuições não há necessidade de incluirmos essa opção para a criação do home, mas para evitarmos não o criarmos é bom acostumarmos a colocá-la na criação do usuário.
  • -p - Essa opção serve para especificarmos uma senha já criptografada para o usuário.

Ex.:

# useradd -g admin -s /bin/bash -d /home/sup1 -c "Usuário Administrativo de Suporte 1" -m sup1

No exemplo acima criamos o usuário sup1, que tem como grupo admin, usando o shell /bin/bash, o home criado foi o /home/sup1 e tem o comentário "Usuário Administrativo de Suporte 1".

Comando passwd

Sintaxe: passwd [opções] <username>

Opções:
  • -d - Permite o usuário acessar (logar) o sistema sem senha.
  • -l - Bloqueia/trava a conta do usuário. O usuário não consegue logar.
  • -u - Desbloqueia/destrava a contado usuário (bloqueado pela opção "-l").
  • -S - Mostra o status da senha do usuário.

Exemplo 1:

# passwd sup1
Chaging password for user sup1
New password: [digitar a senha]
Retype new password: [repetir a senha]

Exemplo 2: Nesse exemplo iremos travar a conta do usuário sup1.

# passwd -l sup1

Exemplo 3: Vamos agora destravar a conta do usuário sup1:

# passwd -u sup1

Comando usermod

Sintaxe: usermod [opções] <username>

Opções:
  • -d - Modifica o caminho do diretório home do usuário.
  • -g - Modifica o grupo do usuário.
  • -c - Modifica o comentário referente ao usuário.
  • -s - Modifica o Shell de comando que o usuário irá utilizar.
  • -p - Substitui a senha já criptografada do usuário.

Exemplo 1: Nesse exemplo estamos modificando o grupo e o comentário do usuário sup1 ao mesmo tempo.

# usermod -g <novoGrupo> -c "<novoComentario>" sup1

Comando userdel

Sintaxe: userdel [opções] <username>

Opções:
  • -r - Ao usarmos essa opção o diretório HOME e Mailbox do usuário será removido. É importante ter certeza ao fazer isso, pois muitas vezes é melhor remover apenas o usuário ou até mesmo suspendê-lo mantendo seus arquivos para auditoria.

Exemplo 1: Remover o usuário sem excluir seus arquivos.

# userdel sup1

Exemplo 2: Remover o usuário e seus arquivos

# userdel -r sup1

Comando groupadd

Sintaxe: groupadd [opções] <groupname>

Opção:
  • -g - Ao usarmos esta opção, podemos especificar o GID do grupo que estamos criando.

Exemplo 1: Criando um grupo chamado "administracao".

# groupadd administracao

Exemplo 2: Criando um grupo chamado oragroup e especificando o GID 1521.

# groupadd -g 1521 oragroup

Comando groupmod

Sintaxe: groupmod [opções] <groupname>

Opção:
  • -g - Ao usarmos esta opção, podemos modificar o GID do grupo.
  • -n - Para trocarmos o nome do grupo.

Exemplo 1: Modificando o GID do grupo "administracao".

# groupmod -g 666 administracao

Exemplo 2: Modificando o nome do grupo oragroup.

# groupadd -n oracle oragroup

    Próxima página

Páginas do artigo
   1. Gerenciamento
   2. Diretório e arquivos
   3. Gerenciando grupos e senhas
Outros artigos deste autor

Desvendando as regras de Firewall Linux Iptables

Como gerenciar permissões no Linux

Leitura recomendada

Otimizando seu web server com Apache2 + Lighttpd

Instalação Minimalista do Void Linux

Configuração de interface de rede ethernet e wireless

Sabayon 5.0 - Transformando Sabayon 4.0r1 em Sabayon 5.0 "Full" (parte 2)

Redmine no Debian - Instalação e configuração

  
Comentários
[1] Comentário enviado por andrecostall em 29/04/2010 - 09:20h

Cara parabéns pelo artigo, muito bom ;)

[2] Comentário enviado por amsouza em 29/04/2010 - 09:27h

Olá Andre,

Muito obrigado pelo comentário,

Abraços,

Armando

[3] Comentário enviado por FEd Suco em 29/04/2010 - 12:03h

Show ! !

Muito bom o artigo.

Abs.

[4] Comentário enviado por amsouza em 29/04/2010 - 12:03h

Obrigado Fed

Abraços,

Armando

[5] Comentário enviado por italo-jrjr em 01/05/2010 - 14:46h

Armando,

Muito bom o seu artigo. Como estou começando a estudar Linux, tive uma duvida no tópico " Comando groupadd". O que seria GID? Não entendi a criação de grupo especificando o GID. Para que serve?

Abraços,

Italo Barreto

[6] Comentário enviado por amsouza em 03/05/2010 - 09:28h

Olá Italo,

Vamos lá, GID é a identificação única de um grupo no Sistema. Alguns administradores, gostam de especificar o GID e até mesmo o UID. A utilização desse recurso é muito mais organizacional do que outra coisa. Por exemplo podemos citar o usuário oracle e o grupo dba.

Vamos supor que tenhamos um usuário de nome oracle (usuário administrativo para gerenciamento do banco de dados) e um grupo chamado dba (grupo que inclue os usuários que podem fazer alguma tarefa administrativa no banco). O administrador pode querer especificar, por exemplo o UID e o GID com o numero da porta em que o oracle trabalha como padrão (1521).

Espero ter esclarecido sua dúvida, abraços,

Armando

[7] Comentário enviado por alexfapa em 14/04/2011 - 23:27h

Muito bom o artigo, explicado de forma clara e objetiva.
Só tenho uma pergunta amigo: como eu faço para que os clientes possam logar nos usuários em máquinas diferentes? E ainda todas as configurações feitas em outra máquina fiquem registradas?

[8] Comentário enviado por rafaelsartori em 11/10/2011 - 09:45h

Olá,

Só para avisar ... na parte da explicação sobre o comando GROUPMOD tem uma coisa errada sobre a troca de nomes do grupo:
- Em vez de GROUPMOD está escrito GROUPADD.

Erro de digitação. Ctz.

Abraço,
Rafael

[9] Comentário enviado por lauro_4L1n3 em 24/01/2012 - 03:39h

Uma pergunta, se eu deletar a linha referente ao usuário no arquivo /etc/passwd , surtirá o mesmo efeito do userdel?

[10] Comentário enviado por armando_2000 em 24/01/2012 - 08:48h

Olá lauro_4Lin3,

Quando deletamos a linha dentro do /etc/passwd o efeito na prática é o mesmo, contudo a probabilidade de você ter em seu Sistema Operacional arquivos e diretórios sem referência (sem essa intenção) será inevitável. Você terá a linha referente a senha criptografada do usuário, dentro do /etc/shadown e ainda dependendo do grupo a que o usuário removido pertença. você terá um grupo sem utilidade dentro do /etc/group.

Ps.: espero ter respondido sua dúvida e obrigado pelo interesse.

abs,

Armando

[11] Comentário enviado por vagner007 em 13/11/2012 - 17:04h

Olá, caiu uma questão em um concurso sobre um comando para adicionar um grupo em um sistema operacional, porém o enuncionado ficou muito abrangente, ou seja, não deu pra distinguir bem.
Segue a questão:
28) É um comando para adicionar um novo grupo de usuarios no sistema:
a) grouperadd
b) addgroup
c) groupadd
d) agroup
e) addg

No gabarito preliminar, consta que a reposta correta é a alternativa B) addgroup
Lendo o post, vi que o comando groupadd existe.
Sabe me dizer se as duas opções são validas ou é apenas addgroup mesmo? A diferença entre eles, porque preciso entrar com recurso, caso as duas opções estejam corretas.
Obrigado e aguardo.

[12] Comentário enviado por amsouza em 13/11/2012 - 17:28h

Olá Vagner007,

Antes de mais nada gostaria de agradecer seu post. Bom vamos lá. O comando default no Linux para adicionar um grupo é o groupadd, mas como existe também o grupo addgroup que adiciona um grupo de forma interativa (vai perguntando algumas coisas durante a criação do group - ex.: id do grupo etc...). Por este motivo você tem que ler com atenção o enunciado da questão antes de entrar com um recurso.

Espero ter ajudado, um abraço,

Armando

[13] Comentário enviado por lauro_4L1N3 em 14/11/2012 - 01:15h

Olá,

Assim como existe o addgroup que é uma forma automatizada do groupadd, de forma análoga há também o adduser que é a forma automatizada do useradd. Dê um man addgroup e leia a descrição, verá que essas ferramentas são ferramentas "amigáveis" para as mencionadas (useradd, groupadd).

[14] Comentário enviado por Deis em 14/11/2012 - 17:35h

Olá Armando, sou leigo no assuto e preciso de uma orientação be, detalhada para a

Como que eu faço para que um programa se inicie para um determinado usuario.

Exemplo;

Eu sou o administrador do sistema; tenho mais 4 contas de usuario e quero que um programa se inicie somente para o usuario de numero 2.

Quando o adminisrador; o usuario 1,3,4 estiverem lodago este programa não sera carregado.

Somente quando o usuario de número 2 se logar esse programa se rodado.

Eu me loguei como usuario 2 e fiz as modificações no aplicativos de sessão mas quando pedia a senha de administrador o terminal reconhecia. Pedia para digitar outra vez.

Quando eu abro o terminal logado como administrador; aparece assim: ubuntu@ubuntu-desktop:~$

Quando eu abro o terminal lodado como usuario aparece assim: jeferson@ubuntu-desktop:~$

jeferson e o login de administrador.


[15] Comentário enviado por amsouza em 14/11/2012 - 19:28h

Olá Deis,

Antes de mais nada, obrigado por seu post. Vamos lá... me tira uma dúvida... você quer que esse programe inicie onde? Quando ele logar na parte gráfica ou através de um login remoto ou acesso via uma tty?

Se o que você quer é iniciar um script, por exemplo, sempre que o usuário número 2 logar via console.. é bem tranquilo, basta referenciar o script que deseja que rode no arquivo ".profile" ou ".bash_profile". Você ainda pode, se caso queira que esse usuário apenas use esse programa/script, basta colocar como shell de comandos dele a referencia para o script...

como vê, existe várias formas de se fazer uma mesma coisa, por isso preciso que você seja mais específico para que eu possa ajudá-lo.

Abs,

Armando

[16] Comentário enviado por konqueror em 27/05/2020 - 17:17h

Este artigo fez uma grande diferença no andamento do meu trabalho, estava com um problema de remoção de diretório de um usuário ftp que havia criado.
Olhando este artigo consegui resolver, muito bem explicado e explanado.
Hoje sou feliz por que trabalho com GNU/Linux, tenho pouco tempo que estou trabalhando quase 4 meses, sou analista de suporte e vou me disponibilando a ganhar prática e conhecimento pois tenho muito apreço pelo GNU/Linux. Um de meus sonhos profissional estava já desacreditado em trabalhar com GNU/Linux mas DEUS me deu esta oportunidade. *obs: desculpe o desabafo mas precisava fazer isto neste momento.
Obrigado pelo ótimo artigo e PARABÉNS.

[17] Comentário enviado por diegovazm em 12/07/2021 - 04:51h

Bom dia, eu criei um user de test com nome 'crom', depois removi o mesmo!
Quando listo a pasta /home ele continua aparecendo no sistema, mas se mando deletar novamente diz que n existe.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts