Blog destinado aglutinar conteúdo sobre redes de computadores, principalmente indicado a usuários, estudantes e entusiastas sobre o assunto.
Pesquisar este blog
quarta-feira, 14 de julho de 2010
Video sobre redes de computadores
Como gerenciar usuários e grupos no linux
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]
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]
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]
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
Comando userdel
Sintaxe: userdel [opções]
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]
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]
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:
- /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
- Minimum Password Age, onde "n" é a quantidade mínima de dias para a troca da senha. - -M
- Máximo Password Age, onde "n" é a quantidade máxima de dias para a troca da senha. - -d - Last Password Change, onde "data" é a data da última troca da senha.
- -W
- 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
- 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 - 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.