Gerenciamento de Grupos e Usuários no Linux Material desenvolvido por Rafael Fernando Diorio Última revisão em 04/08/2013 www.diorio.com.br rafael@diorio.com.br
Tópicos Introdução Arquivos de grupos e usuários Gerenciamento de grupos Gerenciamento de usuários Comandos úteis
Introdução Assim como em outros SOs, o método de autenticação mais utilizado no Linux está associado a logins e senhas de acesso... Logins tipicamente referenciados a nomes de usuário e comumente organizados em grupos departamentais. Obs.: A conta destinada ao administrador Linux é a root. Internamente, essas contas de usuário e de grupo são vistas a partir de seus identificadores, denominados, respectivamente, UID e GID... Quanto menor o UID, mais direitos o usuário possui; A conta root possui UID igual a zero. Nesse contexto, o sistema fornece uma série de ferramentas destinadas ao gerenciamento de usuários e grupos no Linux.
Arquivos de grupos e usuários Todos os usuários e grupos do sistema possuem informações armazenadas em arquivos específicos... Os arquivos que armazenam as informações de contas de grupo são: /etc/group (cadastro de grupos do sistema) E, /etc/gshadow (senhas dos grupos do sistema) De modo similar, os arquivos que armazenam as informações de contas de usuário são: /etc/passwd (cadastro de usuários do sistema) E, /etc/shadow (senhas dos usuários do sistema)
Arquivos de usuários e grupos (cont.) Esse recurso de separar o cadastro do usuário/grupo do arquivo que armazena sua respectiva senha é denominado senhas shadow... Utilizado para aprimorar a segurança do sistema: Arquivos /etc/passwd e /etc/group podem ser lidos por todos; Arquivos /etc/shadow e /etc/gshadow podem ser lidos somente pelo root. Obs.: A utilização desse recurso ( senhas shadow ) é padrão nos Linux atuais. Se aplicável, pode-se habilitar ou desabilitar esse recurso através dos comandos pwconv/grpconv e pwunconv/ grpunconv, respectivamente.
Arquivos de usuários e grupos (cont.) Quanto a sintaxe do arquivo de cadastro de grupos ( /etc/group ), temos: grupo : password : GID : membros adicionais Ex. 1: root:x:0: Ex. 2: grp_informatica:x:500:rafael.diorio,joselito.diorio Observações: Todo grupo possui um nome ( grupo ) e um identificador no sistema ( GID ); Se existente, sua senha é armazenada em /etc/gshadow e seus membros adicionais listados ao final de sua definição; Todo usuário pertence a um grupo primário do sistema.
Arquivos de usuários e grupos (cont.) Quanto a sintaxe do arquivo de cadastro de usuários ( /etc/passwd ), temos: login : password : UID : GID : comentário : home : shell Ex. 1: root:x:0:0:root:/root:/bin/bash Ex. 2: diorio:x:501:501:rafael F. Diorio:/home/diorio:/bin/bash Observações: Quanto menor o UID, mais privilégios o usuário possui; O GID refere-se ao grupo primário do usuário; Sem o recurso de senhas shadow, a senha do usuário seria armazenada (criptografada) no lugar do valor x ; Se o x for removido, o usuário loga sem senha.
Gerenciamento de grupos O modo mais comum para gerenciar grupos no Linux é através dos seguintes comandos: Comando groupadd : para adicionar grupos no sistema; Comando groupdel : para remover grupos do sistema; Comando groupmod : para modificar contas de grupos; E, comando gpasswd : para gerenciar os arquivos /etc/group e, quando aplicável, /etc/gshadow. Outra possibilidade é através da edição manual dos arquivos que armazenam as informações dos grupos do sistema... Arquivo /etc/group ; E, arquivo /etc/gshadow.
Gerenciamento de grupos: Adição, remoção e alteração A adição de grupos no Linux é comumente realizada através do comando groupadd... Ex.: groupadd grp_informatica Quanto à sua remoção, os grupos do Linux são comumente removidos através do comando groupdel... Ex.: groupdel grp_informatica Para modificações nas contas de grupo, utiliza-se o comando groupmod... Ex.: groupmod informatica -n grp_informatica Obs.: O comando acima renomeia o grupo informatica para grp_informatica.
Gerenciamento de grupos: Senhas O comando utilizado para definir senhas aos grupos do sistema é o gpasswd... Ex.: gpasswd grp_informatica Quando presente, a senha do grupo é solicitada quando um usuário necessitar fazer parte, temporariamente, desse grupo com senha... Ex.: newgrp grp_informatica ou sg grp_informatica. Obs.: Para tal, o pacote shadow-utils deve estar instalado e atualizado no sistema. Vale ressaltar que essa alteração de grupo é temporária e só vale para a sessão atual do usuário.
Gerenciamento de usuários O modo mais comum para gerenciar usuários Linux é através dos seguintes comandos: Comando useradd : para adicionar usuários no sistema; Comando passwd : para definir ou alterar senhas de usuários; Comando usermod : para modificar contas de usuários; E, comando userdel : para remover usuários do sistema. Outra possibilidade é através da edição manual dos arquivos que armazenam as informações das contas de usuário no sistema... /etc/passwd ; E, /etc/shadow (além dos arquivos de grupos do sistema).
Gerenciamento de usuários: Adição Um dos comandos mais utilizados para adicionar novos usuários ao sistema é o useradd... Ex. 1: useradd joselito.diorio Ex. 2: useradd -m -g grp_informatica -c Rafael Fernando Diorio rafael.diorio Obs.: Quanto aos parâmetros acima: -m : para criar o diretório pessoal do novo usuário; -g : para definir o grupo primário do novo usuário E, -c : para especificar um comentário (nesse exemplo, o nome) para o novo usuário; Para outros parâmetros, vide man useradd.
Gerenciamento de usuários: Adição (cont.) Se desejável, pode-se customizar os padrões de criação de novos usuários através dos seguintes arquivos do sistema: Arquivo /etc/default/useradd : permite definir configurações de padrões para o comando useradd ; E, arquivo /etc/login.defs : permite definir configurações de padrões de login e senha para os novos usuários. Para definir o conteúdo do diretório pessoal dos novos usuários, pode-se customizar o diretório /etc/skel... Esse diretório representa o diretório template para os diretórios pessoais dos novos usuários.
Gerenciamento de usuários: Adição (cont.) useradd /etc/passwd /etc/shadow /etc/group Usuário Linux /etc/default/useradd /etc/login.defs /etc/skel/ Visão geral: Arquivos e diretório consultados pelo comando useradd.
Gerenciamento de usuários: Senhas As senhas dos usuários do sistema são gerenciadas, principalmente, através do comando passwd... Ex. 1: passwd rafael.diorio Ex. 2: passwd -x 30 -w 10 rafael.diorio Obs.: Quanto aos parâmetros acima: -d : para remover a senha do usuário; -x dias : para definir intervalos de expiração de senhas; E, -w dias : para exibir alertas de expiração de senhas; Para outros parâmetros, vide man passwd.
Gerenciamento de usuários: Senhas (cont.) Para alterar informações de validade de senhas de usuários também pode-se utilizar o comando chage... Ex. 1: chage -l rafael.diorio Ex. 2: chage -M 30 -W 10 rafael.diorio Obs.: Quanto aos parâmetros acima: -l : para exibir informações de senha; -M dias : para definir intervalos de validade da senha; -E data : para expirar senha em data (YYYY-MM-DD); Para outros parâmetros, vide man chage.
Gerenciamento de usuários: Alteração Para alterar informações de contas de usuário, pode-se utilizar o comando usermod... Ex. 1: usermod -G grp_comercial,grp_financeiro rafael.diorio Ex. 2: usermod -L rafael.diorio Ex. 3: usermod -e 2012-08-01 rafael.diorio Obs.: Quanto aos parâmetros acima: -G : para adicionar o usuário a outros grupos do sistema; -L : para bloquear a conta do usuário (utilize -U para desbloquear a conta em questão) -e : para expirar conta do usuário numa data específica (YYYY-MM-DD). Para outros parâmetros, vide man usermod.
Gerenciamento de usuários: Remoção Para remover as contas de usuários do sistema, pode-se utilizar o comando userdel... Ex. 1: userdel rafael.diorio Ex. 2: userdel -r joselito.diorio Quanto ao parâmetro -r (acima), ele é utilizado para remover o diretório pessoal do usuário quando sua conta é excluída do sistema.
Gerenciamento de usuários: Notificação Pode-se enviar mensagens aos usuários (conectados) no sistema através do comando wall... Ex.: wall Aviso: Manutenção do sistema às 14:00hs. Obs.: Com exceção as mensagens enviadas pelo root, podese desabilitar seu recebimento através do comando mesg n. mesg y ativa o recebimento de mensagens e mesg exibe o valor ( y ou n ) de mesg. Para enviar uma mensagem para um usuário específico pode-se utilizar o comando write <usuário> <terminal>... Ex: write rafael.diorio tty2 <ENTER> Seu acesso está sendo monitorado. <CTRL+C>
Gerenciamento de usuários: Notificação (cont.) Outra notificação bastante comum é a exibição de mensagens após o login do usuário no sistema... Essas mensagens podem ser inseridas no arquivo /etc/motd... Ex.: Aviso: Todos os acessos no sistema estão sendo auditados. Para exibir mensagens antes do login dos usuários, pode-se utilizar os arquivos /etc/issue (acesso local) e /etc/issue.net (acesso remoto): Ex.: Linux Authentication Server by Rafael Fernando Diorio Obs.: Para acessos SSH, deve-se alterar a entrada #Banner none do arquivo /etc/ssh/sshd_config para Banner /etc/issue.net e reiniciar o serviço sshd.
Comandos úteis Alguns comandos úteis no gerenciamento de grupos e usuários do sistema são: id : exibe UID e GID do usuário, bem como demais grupos que o usuário faz parte (se aplicável); groups : exibe os grupos que o usuário faz parte; finger : exibe diversas informações sobre o usuário, destacando login, shell, home, comentário e último acesso; chfn : altera informações de contas de usuário (informações exibidas pelo comando finger ); chsh : altera o shell do usuário; su - : substitui usuário corrente por outro usuário (quando especificado) ou por root ;
Comandos úteis (cont.) Alguns comandos úteis no gerenciamento de grupos e usuários do sistema são (cont.): who : exibe os usuários atualmente logados no sistema; w : exibe os usuários atualmente logados no sistema, bem como o que estão fazendo; last : exibe os últimos logins (com shutdowns ) efetuados no sistema; vipw e vigr : editores de texto (tipicamente utilizando vi ) para a edição dos arquivos passwd e group de modo seguro (com lock para outras edições simultâneas); pwck e grpck : ferramentas para verificar a integridade dos arquivos de usuário ( passwd ) e grupos ( group ) do sistema.
Dúvidas e/ou sugestões? Participe... questione... sugira... pratique... Aprimore seus conhecimentos e ajude a melhorar as nossas aulas! :-)
Referências [1] CentOS Project em http://www.centos.org; [2] CentOS Documentation disponível em http://www.centos.org/docs; [3] Guia Foca/GNU Linux em http://www.guiafoca.org/; [4] Livro "Dominando Linux: Red Hat e Fedora" dos autores Bill Ball e Hoyt Duff. Editora Pearson - 2004; [5] Red Hat Enterprise Linux em http://www.redhat.com; [6] Red Hat Enterprise Linux Documentation disponível em http://www.redhat.com/docs/manuals/enterprise.