Como gerenciar usuários e grupos

Autor: Armando Martins de Souza
<armandomartins.souza at gmail.com>

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.


http://www.vivaolinux.com.br/artigo/Como-gerenciar-usuarios-e-grupos

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s