Manejando contas de usuários

Criar e manter contas de usuários é uma parte importante do trabalho de um administrador Linux. Através deste gerenciamento, permitimos ou restringimos acesso a serviços e documentos.

[ Hits: 56.273 ]

Por: Fabio em 25/07/2003


Introdução



Criar e manter contas de usuários é uma parte importante do trabalho de um administrador Linux. Através deste gerenciamento, permitimos ou restringimos acesso a serviços e documentos.

Tipos diferentes de usuários possuem necessidades diferentes e devem receber contas diferentes. Selecionando-se a conta certa para cada usuário garante que ele terá acesso garantido para o desempenho de suas atividades, não se permitindo privilégios adicionais que possam comprometer a segurança do sistema.

O Linux utiliza 3 arquivos para manter informações sobre usuários e grupos:
  • /etc/passwd
  • /etc/group
  • e /etc/shadow.

/etc/passwd


O arquivo /etc/passwd contém informações sobre todos os usuários. O root sempre será o primeiro da lista, com UID (user ID) 0 e GID (group ID) 0.

Usuários e contas especiais associados a serviços e daemons são listados a seguir, tendo valores UID e GID abaixo de 500. Após são listadas as contas de usuários comuns. Veja abaixo um exemplo:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/var/ftp:
nobody:x:65534:65534:Nobody:/home:
www:x:100:101::/var/www:/bin/false
sshd:x:101:102:sshd:/var/empty:/bin/false
stunnel:x:102:233::/home/stunnel:/dev/null
postfix:x:103:103:postfix:/var/spool/postfix:
ntp:x:104:104:NTP daemon:/etc/ntp:/bin/false
named:x:105:234:Domain name server:/var/named:/bin/false
FG:x:500:500:Fabio:/home/FG:/bin/bash

Observando-se a última entrada do arquivo, vemos o registro do usuário FG, com os seguintes campos delimitados por dois pontos:
  • Nome do usuário: \x{2013} FG.
  • Senha: aqui vemos um "x", que indica que a senha está guardada em outro local (/etc/shadow).
  • User ID: este número (500) estará associado a todos os arquivos criados ou pertencentes ao usuário FG. Tipicamente os processos também se associam ao UID do usuário que o iniciou.
  • Group ID padrão: é o grupo de login do usuário. Todos os arquivos do sistema são de propriedade de um usuário e de um grupo. Quando o usuário FG cria um novo arquivo, este receberá por padrão o valor GID 500. Não é coincidência que o UID tem o mesmo valor do GID: esta é a abordagem da Red Hat que o CL segue, sendo chamada de "grupos privados de usuários".

    Outras distribuições Linux (como SuSE) adotam um único grupo para todos os usuários (users).
  • Descrição do Usuário: este campo guarda informações do usuário, podendo ser seu nome, telefone, e-mail, etc.
  • Diretório home do usuário: quando o usuário loga no sistema, o programa login utiliza este campo para definir a variável $HOME. Por padrão, este diretório será /home/nome_do_usuário.
  • Shell de login do usuário: por padrão esta é /bin/bash (Bourne Again Shell). Contas que não precisam ou não devem (por medidas de segurança) ter uma shell de login possuem neste campo /bin/false.
No exemplo apresentado do arquivo /etc/passwd vê-se várias contas de sistema com UID menor que 500. Algumas delas são necessárias para o bom funcionamento do sistema (como root, bin, daemon e halt); outras são associadas com servidores ou programas específicos (como mail, news, games, gopher e ftp).

É importante fazer backup do arquivo /etc/passwd (idem /etc/shadow e /etc/group) após a instalação do sistema ou após adicionar ou remover algum usuário. Estes arquivos serão úteis caso seja necessário reinstalar o sistema. E é também uma medida de segurança, pois crackers podem criar suas próprias contas, senhas ou adicionar uma shell de login em contas do sistema (como ftp).

/etc/shadow


Quando se atribui uma senha para um usuário, esta é criptografada utilizando-se um valor randomicamente gerado (chamado salt). A senha criptografada juntamente com o salt são então guardados no arquivo /etc/shadow, onde somente o root tem permissão de leitura e escrita.

O arquivo /etc/passwd precisa estar com permissão de leitura ao sistema pois é ele quem associa UIDs e GIDs com nomes.

Veja um exemplo do arquivo /etc/shadow:

root:$1$BJxvA4uP$Lap0ybTdV1F6cvj1PMBGF.:12060:0:99999:7:::
bin:*:12118:0:99999:7:::
daemon:*:12118:0:99999:7:::
adm:*:12118:0:99999:7:::
lp:*:12118:0:99999:7:::
sync:*:12118:0:99999:7:::
shutdown:*:12118:0:99999:7:::
halt:*:12118:0:99999:7:::
mail:*:12118:0:99999:7:::
news:*:12118:0:99999:7:::
uucp:*:12118:0:99999:7:::
operator:*:12118:0:99999:7:::
games:*:12118:0:99999:7:::
gopher:*:12118:0:99999:7:::
ftp:*:12118:0:99999:7:::
nobody:*:12118:0:99999:7:::
www:!!:12118:0:99999:7:::
sshd:!!:12118:0:99999:7:::
stunnel:!!:12118:0:99999:7:::
postfix:!!:12118:0:99999:7:::
ntp:!!:12118:0:99999:7:::
named:!!:12118:0:99999:7:::
FG:$1$4FyKg9qa$jtLyTgTGqHPy5ePxxfknl/:12060:0:99999:7:::

Observando-se a última entrada do arquivo, vemos o registro do usuário FG, com os seguintes campos delimitados por dois pontos:
  • Nome do usuário: FG. É o nome de login do usuário, igual ao referido no arquivo /etc/passwd.
  • Senha criptografada
  • Última mudança de senha: este número representa o número de dias decorridos entre 1 de janeiro de 1970 e a última alteração da senha.
  • Número de dias para que a mudança de senha seja permitida: tipicamente este número é zero, permitindo que o usuário mude sua senha quando desejar.
  • Número de dias após o qual a senha deve ser alterada: caso a alteração da senha não seja forçada, este número será 99999.
  • Número de dias antes da expiração da senha no qual o usuário será avisado: tipicamente o usuário é avisado com uma semana de antecedência.
  • Número de dias entre a expiração da senha e a desativação da conta: caso não se queira desativação automática da conta, este campo é deixado em branco ou com o valor 1.
  • Dia da desativação da conta: dias decorridos entre 1 de Janeiro de 1970 e a data em que a conta será desativada. Um valor em branco (ou 1) neste campo suspende desativação automática.
  • Campo reservado: para uso futuro.


Utilitários


Os utilitários para manutenção de senhas criptografadas são:
  • pwconv: utiliza os valores definidos em /etc/login.defs para adicionar entradas no arquivo /etc/shadow e remove qualquer entrada do /etc/shadow que não tenha correspondente no arquivo /etc/passwd.
  • pwunconv: compara os arquivos /etc/passwd e /etc/shadow, colocando as entradas do campo de senhas do arquivo /etc/shadow nas linhas correspondentes do arquivo /etc/passwd. O arquivo /etc/shadow é removido.

    Este utilitário é usado para se migrar usuários de outro sistema: após executar o pwunconv copia-se as linhas dos novos usuários no /etc/passwd, e a seguir gera-se o /etc/shadow novamente com o pwconv.

  • grpconv: faz a mesma função do pwconv, porém com os grupos do /etc/group.
  • grpunconv: faz a mesma função do pwunconv, porém com os grupos.


    Próxima página

Páginas do artigo
   1. Introdução
   2. Manipulando contas de usuários
   3. Grupos
   4. Manipulando grupos
Outros artigos deste autor

Image2mpeg - Prepare suas imagens para apresentação em DVD

Leitura recomendada

Como converter sua partição de ext2 para ext3

Instalação e uso do Superkaramba

Instalação e configuração da impressora HP 3745 (e similares)

Instalando o AWSTATS no Slackware

Apache2 + PHP5 + VirtualHosts no Debian e Ubuntu

  
Comentários
[1] Comentário enviado por fabio em 25/07/2003 - 17:02h

Excelente artigo, fala sobre atividades básicas porém essenciais e numa linguagem bem acessível aos usuários menos experientes.

[2] Comentário enviado por jeison em 28/07/2003 - 11:23h

Paabéns, gostei do artigo, muito bom, agora eu gostaria de dar uma sugestao, escreva um artigo agora lanux falando de "como utilizar os grupos efetivamente" sabe, dando exemplo de onde os grupos resolvem problemas a facilitam a vida do administrador, ficaria muito bom, e daria continuidade a o seu trabalho aqui. :)

[3] Comentário enviado por kraftwerk em 01/08/2008 - 09:46h

Grande Lanux

Preciso perguntar o seguinte:
O que acontecerá se eu tiver que alterar o id de um usuário em máquina cliente, para ficar com o mesmo id cadastrado no servido?
Corro risco de perder configurações no /home ou no gnome/kde na máquina cliente?

[4] Comentário enviado por marbreu em 23/09/2008 - 21:59h

Valeu pelo Post, mas gostaria se vc me ajudasse numa situação. Meu PC tinha duas contas no diretório home: administrador e supervisor, apaguei por engano a conta:SUPERVISOR e ADMINISTRADOR, usand o o comando: rm -r , agora quando reinicio a maquina aparece um erro, kdestartupconfig, e só consigo entrar no usuario root.Como faço para recuperar ou recriar as contas.Atenciosamente...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts