Administração de usuários e grupos

O Linux é um sistema operacional multiusuário, portanto é necessário que todos os usuários sejam cadastrados e tenham permissões de acesso diferenciadas. É possível também cadastrá-los em grupos para facilitar o gerenciamento. 
A criação e administração de contas de usuários no sistema é tarefa do superusuário (root). É uma tarefa que demanda responsabilidade e deve ser acompanhada com muita atenção. 
Root é um usuário especial, ele pode fazer TUDO em seu sistema, não importa a tarefa, ele pode executá-la (ao contrário dos usuários comuns, que têm restrições). 
Ferramentas 
Existem várias ferramentas de administração nos sistemas Linux, normalmente elas extrapolam o simples controle de usuários e fazem muitas outras coisas, tais como configuração de rede. 
Como as ferramentas entre as mais variadas versões/distribuições de Linux podem trabalhar de forma diferente, e em algumas versões/distribuições nem ferramentas existem, como no Solaris (Unix) e no Slackware (Linux), existem um conjunto de comandos genéricos e que funcionam de forma quase idêntica entre todas elas e que vamos conhecer na seqüência. 
Verificando informações do usuário 
Todo usuário possui um número chamado user ID com o qual o sistema Unix/Linux identifica-o no sistema. Além do user ID, os usuários possuem o group ID. Toda vez que um processo for ativado será atribuído ao processo um User ID e um Group ID. Estes ID's são chamados de identificação efetiva do processo. 
id [ opções ] [ nome ] 
Exemplos de utilização: 
Sem parâmetros, pegando as informações do usuário atual. 
# id 
uid=1094(root) gid=500(root) grupos=500(root) 
Pegando somente o user id do usuário atual. 
# id -u 
1094 
Verificando o ID, GID e grupos: 
# id [usuário] 
Tornando-se outro usuário 
Permite o usuário mudar sua identidade para outro usuário sem fazer o logout. Útil para executar um programa ou comando como superusuário sem ter que abandonar a seção atual. 
# su [usuário] 
Usuário é o nome do usuário que deseja usar para acessar o sistema. Se não digitado, é assumido o usuário . 
Será pedida a senha do superusuário para autenticação. Digite quando desejar retornar a identificação de usuário anterior. 
Comando useradd 
Permite que se criem usuários conforme especificado em opções. Somente o superusuário poderá utilizar este comando: 
useradd [ opções ] usuário 
Este comando irá alterar os arquivos: 
/etc/passwd - informações de contas de usuários e senhas criptografadas; 
/etc/shadow - informações de contas de usuários e senhas criptografadas; 
/etc/group - informações de grupos. 
Exemplos de utilização 
Cria o usuário: 
# useradd [usuário] 
Cria o usuário e designa o diretório /home/ como o diretório pessoal deste: 
# useradd -d /home/usuário [usuário] 
Cria o usuário com o shell sh: 
# useradd -s /bin/sh [usuário] 
Cria o usuário com o grupo root. 
# useradd -g root [usuário] 
Cria o usuário com várias informações: 
# useradd -d /home/usuário -g users -c "ESTUDO LINUX" usuário 
Utilize o manual para ver outras opções de utilização do comando useradd: 
# man useradd 
Comando adduser 
Dependendo da distribuição, o comando "adduser" vai ser apenas um comando igual ao"useradd", ou então um script interativo que irá lhe fazendo perguntas, as quais você irá respondendo e então o script criará um usuário no sistema para você. 
Criar um usuário padrão: 
# adduser [usuário] 
Habilitar uma senha ou modificar senha: 
# passwd [usuário] 
Você pode especificar outros parâmetros para o usuário, como no comando a seguir: 
# adduser [usuário] -d /var/usuarios/usuario -s /dev/null 
Com estes parâmetros, foi especificado que o usuário terá como diretório home o "/var/usuarios/usuario" e como shell o diretório "/dev/null" (ou seja, não terá shell). Sem estes parâmetros, por padrão, o diretório home seria "/home/usuario" e o shell seria "/bin/bash". 
Cada um desses programas/comandos escreve o usuário no arquivo de configuração do Linux referente aos usuários do sistema. Este arquivo é o "/etc/passwd". Cada linha deste arquivo é um usuário cadastrado no sistema. 
Você pode muito bem criar uma conta sem usar estes programas/scripts citados acima. O "passwd" é formado por linhas onde cada uma é um usuário. Então vamos aprender a montar tais linhas: 
usuário:x:1001:100:Marcos_Froes:/home/usuario:/bin/bash 
Acrescentando através da Shell: 
# echo "usuário:x:1001:100:Marcos_Froes:/home/usuario:/bin/bash" >> /etc/passwd 
Vamos dividir esta linha em "campos", onde cada um é separado por: (dois pontos): 
Usuário => Login do Usuário, aqui você pode colocar o nome que quiser com até 8 caracteres. 
X => Aqui diz que o password está no arquivo /etc/shadow. Se estivesse com *, a conta estaria desabilitada e se estivesse sem nada (::), a conta não teria password. 
1001 => UID (User IDentification), o número de identificação do usuário. 
100 => GID (Group IDentification), o número de identificação do grupo do usuário. 
Marcos_Froes => Comentários do usuário, como nome, telefone, etc. 
/home/usuário => O diretório HOME do usuário, ou seja, o diretório pertencente a ele. Geralmente estes diretórios estão sempre em /home. 
/bin/bash => Shell do usuário, ou seja, o programa que irá enterpretar os comandos que o usuário executar. 
Obs: O /etc/shadow é um arquivo que contém a senha do usuário criptografada, se alguém tiver posse dela, esta pessoa pode comparar as senhas com uma lista de palavras e descobrir as senhas dos usuários. Felizmente, este arquivo está muito bem protegido pelo sistema. 
Modificando o nome de um usuário 
# usermod -l novo_nome usuário 
Removendo um usuário: 
Você pode apagar a linha referente a ele no /etc/passwd e os seus arquivos, ou simplesmente digitar: 
# userdel -r usuário 
Combine com a opção -r para deletar junto o diretório HOME do usuário. 
Trabalhando com grupos 
Criando um grupo (este comando escreve uma linha no arquivo /etc/group): 
# groupadd [grupo] 
Adicionando uma senha para o grupo: 
# gpasswd [grupo] 
Mudando a propriedade de um arquivo: 
# chown novo-dono.novo-grupo arquivo 
O comando acima altera o proprietário e o grupo do arquivo. Pode-se usar a opção -R para alterar recursivamente propriedades dentro de um diretório. 
Um arquivo que também tem muito haver com os usuários no Linux é o /etc/group, que contém as definições de cada grupo, como por exemplo seus nomes, GIDs, e usuários adicionais que pertencem à ele. Se você adicionar uma linha neste arquivo estará criando um novo grupo. Vamos criar um novo grupo no /etc/group: 
Clube_do_Hacker:x:666:Marcos_Froes,user1,user2,user3 
Adicionando esta linha no arquivo /etc/group, um novo grupo é criado com o nome 'Clube_do_Hacker', GID '666' e com usuários adicionais pertencentes à ele: 'Marcos_Froes,user1,user2,user3'. 
Removendo um grupo: 
# groupdel [nome_grupo] 
Renomeando um grupo: 
# groupmod [novo_nome] [nome_antigo] 
Adicionando um usuário a um grupo: 
# adduser [usuário] [grupo] 
# gpasswd -a [usuário] [grupo] 
Combinando este conhecimento com algo sobre permissões dos arquivos, conteúdo a ser visto no próximo módulo, você pode controlar muito bem quem usa o seu sistema ou servidor, sabendo quem pertence aos grupo, quais seus diretórios, que arquivos podem acessar, entre outros. 
Comando passwd 
O comando passwd permite que se troque a senha de determinado usuário. O superusuário pode trocar a senha de qualquer outro. O usuário comum, porém, pode trocar somente a sua senha. As senhas são armazenadas no arquivo /etc/passwd ou /etc/shadow. No arquivo /etc/passwd também é armazenado as informações relativas aos usuários. 
Após a criação do usuário será necessário criar uma senha para este, caso contrário, não será permitido que este usuário faça login no sistema. 
passwd [ usuário ] 
Exemplos de utilização: 
Alterando a senha de outro usuário (é preciso ser o superusuário): 
# passwd [usuário] 
Alterando a própria senha (usuário comum pode utilizar este comando): 
# passwd 
Para sua segurança, deve-se configurar o sistema para que: 
=> A senha deva ter no mínimo 6 caracteres; 
=> A senha deva ter no mínimo duas letras maiúsculas e/ou duas letras minúsculas e pelo menos um dígito ou caractere especial; 
=> São aceitos somente os caracteres ASCII padrão de códigos 0 a 127; 
=> A senha deve diferenciar do nome da conta (obrigatório); 
=> A nova senha deve diferenciar da senha velha em pelo menos três caracteres. 
=> As regras acima não se aplicam ao superusuário. 
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 (citação abaixo) é 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. Arquivo sobra de senhas de grupos é o /etc/gshadow. 
=> grpunconv: faz a mesma função do pwunconv, porém com os grupos.

 

fonte: clubedohacker.com.br

.