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.
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.
[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?
[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).
[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.
[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.
[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.
[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:~$
[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.
[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.