Você está na página 1de 2

LINUX - GERNCIA DE USURIO

Prof.: Leonardo Barboza

Gerenciamento de Usurio no Linux


O gerenciamento de usurios no Linux um tema bem conhecido, mas, ao mesmo tempo, fonte de vrias dvidas. Este um mini-tutorial sobre o gerenciamento de usurios, grupos e permisses de acesso via linha de comando, onde voc pode tirar suas dvidas. Como bem sabemos, o Linux um sistema multiusurio, cujas razes remetem aos sistemas Unix. O sistema pode ser usado por inmeros usurios simultaneamente, sem que um atrapalhe as atividades do outro, nem que possa alterar seus arquivos. Dois exemplos extremos seriam um servidor LTSP, onde dezenas de usurios podem rodar aplicativos simultaneamente, via rede, atravs de terminais burros conectados ao servidor principal, e um servidor web de shared hosting, que pode hospedar milhares de sites diferentes, cada um administrado por um usurio diferente. As restries bsicas de acesso so implementadas atravs de um sistema de permisses simples, porm eficiente, que consiste num conjunto de trs permisses de acesso (ler, gravar e executar) e trs grupos (dono, grupo e outros), que combinadas permitem fazer muita coisa. Os dois comandos mais bsicos so o "adduser" e o "passwd", que permitem, respectivamente adicionar novos usurios e alterar as senhas de acesso posteriormente, como em: # adduser eags (cria o usurio eags, especificando uma senha inicial) # passwd eags (altera a senha posteriormente) O prprio usurio pode alterar a senha usando o comando "passwd", desde que ele saiba a senha antiga. Se o usurio esqueceu a senha, voc pode definir uma nova executando o comando como root; nesse caso o sistema pede a nova senha diretamente, sem solicitar a senha antiga. Os usurios so cadastrados no sistema atravs do arquivo "/etc/passwd". Se tiver curiosidade em olhar dentro do arquivo voc ver uma entrada para cada usurio, incluindo o diretrio home e o shell usado, como em: eags:x:1001:1001:,,,:/home/eags:/bin/bash Assim como qualquer outro arquivo de configurao, o "/etc/passwd" pode ser editado manualmente, ou com a ajuda do comando "usermod". Existem diversas situaes em que voc pode desejar trocar o shell padro ou o diretrio home do usurio, de forma a limitar o acesso ao servidor. Em um servidor web compartilhado por muitos usurios, por exemplo, o diretrio home de cada usurio seria a pasta contendo os arquivos do site, e o shell padro seria um aplicativo como o MySecureShell, destinado a limitar o acesso do usurio a esta pasta especfica.

Para alterar o shell do usurio voc usa o parmetro "-s", como em: # usermod -s /usr/bin/rssh manuel Para alterar o home, voc usa o parmetro "-d", como em: # usermod -d /var/www/manuel manuel Voc pode tambm especificar estes diretamente ao criar o usurio, como em: parmetros

# adduser --home /var/www/manuel --shell /usr/bin/rssh manuel Bem antigamente, as senhas eram salvas no prprio arquivo "/etc/passwd", juntamente com as demais informaes, o que abria brecha para diversos tipos de ataques. A partir de um certo ponto (por volta de 1996) todas as distribuies passaram a utilizar o sistema shadow, onde as senhas so armazenadas de forma encriptada em um arquivo separado, o "/etc/shadow". Dentro do arquivo voc ver entradas contendo a senha encriptada, como em: eags: $1$LpQPRMC5$eHXLjiW7ks80LQcepW0Rz.:13993:0:99999:7:: : As senhas so encriptadas usando um algoritmo de mo nica, que permite apenas encriptar as senhas, mas no recuper-las. Durante o login, o sistema aplica o mesmo algoritmo senha digitada pelo usurio e compara a string resultante com a armazenada no arquivo. Se o resultado for o mesmo, o sistema sabe que a senha confere e o acesso autorizado. Este sistema faz com que as senhas no sejam recuperveis, j que a senha propriamente dita no salva em lugar nenhum. Se o usurio esqueceu a senha, voc pode usar (como root) o comando "passwd" para definir uma nova, mas no possvel recuperar a senha antiga. Ferramentas como o John the ripper permitem descobrir as senhas armazenadas no arquivo "/etc/shadow" usando um ataque de fora bruta, que consiste em simplesmente testar todas as possibilidades (incluindo alguns refinamentos, como descobrir senhas fceis, baseadas em palavras do dicionrio) at descobrir a senha. Este mtodo funciona bem em senhas fceis, com at 6 caracteres, mas invivel no caso de boas senhas, com 8 caracteres ou mais. A senha referente ao usurio "eags", que usei como exemplo, poderia ser descoberta rapidamente. Baixe o programa no http://www.openwall.com/john/ (ou instale-o usando o apt-get/yum) e tente descobrir qual :) Continuando, para remover um usurio anteriormente criado, utilize o comando "deluser", como em:

LINUX - GERNCIA DE USURIO

Prof.: Leonardo Barboza


# deluser eags Por questo de segurana, o comando remove apenas a conta, sem apagar o diretrio home, ou outras pastas (como o diretrio de spool dos e-mails). O diretrio home especialmente importante, pois ele guarda todas as configuraes e os arquivos do usurio, de forma que em um servidor voc s deve remov-lo depois de ter realmente certeza do que est fazendo. Para remover o usurio apagando tambm o diretrio home, adicione o parmetro "--remove-home", como em: # deluser eags --remove-home Como comentei, o diretrio home importante, por concentrar todos os arquivos do usurio. Uma opo saudvel ao remov-lo criar um backup, de forma que voc possa restaur-lo mais tarde caso necessrio. Para isso, use a opo "--backup", que cria um arquivo compactado, contendo os arquivos do usurio, salvo no diretrio onde o comando for executado: # deluser eags --remove-home --backup Se executasse o comando "ls" depois de remover o usurio "eags" usando a opo de backup, veria que foi criado o arquivo "eags.tar.bz2", referente ao backup. Voc tambm pode bloquear temporariamente um usurio, sem remover o home ou qualquer outro arquivo usando o comando "passwd -l", como em: # passwd -l eags O "passwd -l" realmente trava a conta, fazendo com que o sistema passe a recursar qualquer senha inserida na hora do login. Para desbloquear a conta posteriormente, use o "passwd -u", como em: # passwd -u eags O Fedora e o CentOS incluem o system-config-users, um utilitrio grfico de administrao de usurios. Uma verso levemente modificada dele pode ser encontrada no Ubuntu e em outras verses baseadas no Debian, na forma do "users-admin", que faz parte do pacote "gnome-systemtools". Alm da configurao dos usurios, temos a configurao dos grupos, que permitem organizar os usurios, definindo as permisses de acesso de forma mais granular. Imagine um caso em que voc tenha um servidor compartilhado entre vrios usurios, onde apenas trs deles, "maria", "jose" e "eags" devem ter acesso pasta "/var/www/intranet", que contm os arquivos do site interno da empresa. Uma forma simples fazer isso criar um grupo, adicionar os trs usurios ao grupo e ajustar as permisses da pasta de forma que o grupo tenha permisso de escrita. Para adicionar o grupo, usamos o comando "groupadd", como em: # groupadd intranet Para adicionar os usurios desejados ao grupo, usamos o prprio comando "adduser", seguido pelo login e o grupo ao qual ele deve ser adicionado (um de cada vez), como em: # adduser maria intranet No CentOS e em outras distribuies derivadas do Red Hat, o comando "adduser" um link para o comando "useradd", que no suporta essa opo. No caso delas, usamos o comando "usermod -a -G", seguido do usurio e do grupo ao qual ele ser adicionado, como em: # usermod -a -G maria intranet