Como gerenciar usuários e grupos

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

Diretório e arquivos

Diretório:

  • /etc/skel – Neste diretório são armazenados arquivos, por padrão ocultos (arquivos que iniciam com um “.”) , que são copiados para o diretório HOME do usuário no momento da criação do usuário. Se precisarmos incluir alguma configuração padrão, podemos usar esse diretório para incluir ou até mesmo editar os arquivos existentes e consequentemente fazer o ajuste a suas necessidades.

Arquivos:

  • /etc/passwd – Arquivo que contém várias informações sobre o usuário. Ele é utilizado por vários comandos de sistema e aplicações. Antigamente até mesmo as senhas eram armazenadas nele, porém a algum tempo as senhas estão sendo armazenadas em /etc/shadow, arquivo que falaremos a seguir. Só o administrador do sistema consegue modificar esse arquivo.
  • /etc/shadow – Onde estão armazenadas as senhas criptografadas dos usuários, além de outras informações como expiração da senha etc.
  • /etc/gshadow – Tem a mesma finalidade do /etc/shadow, só que para grupos e não usuários.
  • /etc/group – É onde se encontram os grupos existentes no sistema. Cada grupo pode estar associado a vários usuários, este arquivo também é responsável por esta associação.
  • /etc/motd – Esse arquivo contém as informações que serão exibidas após o login do usuário.
  • /etc/default/useradd e /etc/login.defs – Arquivos onde se encontram as configurações default de criação de usuários. As configurações podem ser diferentes dependendo de cada “distro”, umas por exemplo, não há a necessidade da opção “-m” para a criação do diretório HOME do usuário.
Gerenciando grupos e senhas

Comandos:

gpasswd

Com esse comando podemos criar senhas para administradores de grupo que terão poder de incluir e remover, além de modificar a senha de um grupo.

grpconv

Através desse comando é criado o arquivo gshadow utilizando o arquivo group para isso.

grpunconv

Esse comando recria um arquivo group utilizando os arquivos group e gshadow e após isso ele remove os dois arquivos.

pwconv

Utilizando o arquivo passwd ele cria o arquivo shadow, hoje em dia esse comando é pouco utilizado, pois os novos sistemas já trabalham diretamente com senhas criptografadas já localizadas no shadow.

pwunconv

Recria o arquivo passwd utilizando os arquivos passwd e shadow e depois os removendo.

chage

Usado para modificar parâmetros de expiração de senha dos usuários. Pode ser executado pelo superusuário seguido do nome do usuário a que iremos modificar os parâmetros. Nesse caso só teremos que ir respondendo o que nos é perguntado. Outra coisa que temos que ter em mente é que esse comando funciona apenas se estivermos usando o esquema de senhas criptografadas (/etc/shadow).

Parâmetros:

  • Minimum Password Age: É onde informamos o mínimo de dias que o usuário deve esperar para poder modificar sua senha novamente.
  • Maximum Password Age: Onde informamos a quantidade de dias máximo que o usuário pode ficar sem modificar sua senha. Caso o usuário ultrapasse o período máximo para a troca, ele só conseguirá logar após sua a troca.
  • Last Password Change: É a data em que a senha teve sua última alteração.
  • Password Expiration Warning: É onde informamos a quantidade de dias antes da expiração da senha que o usuário começará a receber o alerta para a troca da senha.
  • Password Inactive: Aqui indicamos a quantidade de dias que o usuário terá para trocar sua senha. Depois de sua expiração o login do usuário ficará bloqueado. Se o usuário não modificar sua senha dentro desse período, apenas o superusuário poderá reativar e trocar a senha do usuário.
  • Account Expiration Date: Esta opção é exatamente onde colocamos a data de expiração da conta do usuário.

Sintaxe: chage [opções] username

Opções:

  • -m <n> – Minimum Password Age, onde “n” é a quantidade mínima de dias para a troca da senha.
  • -M <n> – Máximo Password Age, onde “n” é a quantidade máxima de dias para a troca da senha.
  • -d <data> – Last Password Change, onde “data” é a data da última troca da senha.
  • -W <n> – Password Expiration Warning, onde “n” é a quantidade de dias antes da expiração da senha, em que o usuário irá começar a receber o aviso para a troca da senha.
  • -I <n> – Password Inactive, onde “n” tem que ser ao menos a quantidade de dias de senha expirada +1, isso significa se a senha esta expirada a 10 dias, temos que no mínimo colocar n=11, para a conta seja reativada e o usuário possa trocar da senha.
  • -E <data> – Account Expiration Date, onde “data” é a data de expiração da senha.

Exemplo 1: Configurando os parâmetros para expiração da senha do usuário bola.

# chage bola
Chaging the aging information for bola
Enter the new value, or press Enter for the default
Minimum Password Age [1]: 4
Maximum Password Age [1]: 30
Last Password Change (YYYY-MM-DD) [2005-11-17]:
Password Expiration Warning [1]: 8
Password Inactive [0]: 5
Account Expiration Date (YYYY-MM-DD) [2005-11-20]: 2010-05-16

Exemplo 2: Modificar o “Minimum Password Age” do usuário bola.

# chage -m 6

Exemplo 3: Modificar o “Maximum Password Age” do usuário bola.

# chage -M 35

Exemplo 4: Modificar o “Last Password Change” do usuário bola.

# chage -d 2010-04-17

Exemplo 5: Modificar o “Password Expiration Warning” do usuário bola.

# chage -W 10

Exemplo 6: Modificar o “Password Inactive” do usuário bola.

# chage -I 20

Conclusão

Gostaria de fechar este artigo dando algumas dicas referentes a importância do planejamento no gerenciamento do usuário. Sem um bom planejamento a gerência de usuários pode se tornar muito complicada, ainda mais se tivermos muitas opções. Contudo alguns pontos são comuns: Quantos usuários temos? Daqui a uns 6 meses, quantos usuários teremos? Todos os usuários precisam de shell de comando?

Bom, pense/planeje o máximo possível para que possa minimizar surpresas. Lembre-se que como todo administrador, teremos surpresas. Por isso quanto mais bem planejado, diminuímos as chances de surpresas.

Rolar para cima