LINUX - GERÊNCIA DE USUÁRIO

Prof.: Leonardo Barboza

Gerenciamento de Usuário no Linux
O gerenciamento de usuários no Linux é um tema bem conhecido, mas, ao mesmo tempo, fonte de várias dúvidas. Este é um mini-tutorial sobre o gerenciamento de usuários, grupos e permissões de acesso via linha de comando, onde você pode tirar suas dúvidas. Como bem sabemos, o Linux é um sistema multiusuário, cujas raízes remetem aos sistemas Unix. O sistema pode ser usado por inúmeros usuários 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 usuários podem rodar aplicativos simultaneamente, via rede, através 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 usuário diferente. As restrições básicas de acesso são implementadas através de um sistema de permissões simples, porém eficiente, que consiste num conjunto de três permissões de acesso (ler, gravar e executar) e três grupos (dono, grupo e outros), que combinadas permitem fazer muita coisa. Os dois comandos mais básicos são o "adduser" e o "passwd", que permitem, respectivamente adicionar novos usuários e alterar as senhas de acesso posteriormente, como em: # adduser eags (cria o usuário eags, especificando uma senha inicial) # passwd eags (altera a senha posteriormente) O próprio usuário pode alterar a senha usando o comando "passwd", desde que ele saiba a senha antiga. Se o usuário 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 usuários são cadastrados no sistema através do arquivo "/etc/passwd". Se tiver curiosidade em olhar dentro do arquivo você verá uma entrada para cada usuário, incluindo o diretório home e o shell usado, como em: eags:x:1001:1001:,,,:/home/eags:/bin/bash Assim como qualquer outro arquivo de configuração, o "/etc/passwd" pode ser editado manualmente, ou com a ajuda do comando "usermod". Existem diversas situações em que você pode desejar trocar o shell padrão ou o diretório home do usuário, de forma a limitar o acesso ao servidor. Em um servidor web compartilhado por muitos usuários, por exemplo, o diretório home de cada usuário seria a pasta contendo os arquivos do site, e o shell padrão seria um aplicativo como o MySecureShell, destinado a limitar o acesso do usuário a esta pasta específica.

Para alterar o shell do usuário você usa o parâmetro "-s", como em: # usermod -s /usr/bin/rssh manuel Para alterar o home, você usa o parâmetro "-d", como em: # usermod -d /var/www/manuel manuel Você pode também especificar estes diretamente ao criar o usuário, como em: parâmetros

# adduser --home /var/www/manuel --shell /usr/bin/rssh manuel Bem antigamente, as senhas eram salvas no próprio arquivo "/etc/passwd", juntamente com as demais informações, o que abria brecha para diversos tipos de ataques. A partir de um certo ponto (por volta de 1996) todas as distribuições passaram a utilizar o sistema shadow, onde as senhas são 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 são encriptadas usando um algoritmo de mão única, que permite apenas encriptar as senhas, mas não recuperá-las. Durante o login, o sistema aplica o mesmo algoritmo à senha digitada pelo usuário 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 não sejam recuperáveis, já que a senha propriamente dita não é salva em lugar nenhum. Se o usuário esqueceu a senha, você pode usar (como root) o comando "passwd" para definir uma nova, mas não é possível recuperar a senha antiga. Ferramentas como o John the ripper permitem descobrir as senhas armazenadas no arquivo "/etc/shadow" usando um ataque de força bruta, que consiste em simplesmente testar todas as possibilidades (incluindo alguns refinamentos, como descobrir senhas fáceis, baseadas em palavras do dicionário) até descobrir a senha. Este método funciona bem em senhas fáceis, com até 6 caracteres, mas é inviável no caso de boas senhas, com 8 caracteres ou mais. A senha referente ao usuário "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 usuário anteriormente criado, utilize o comando "deluser", como em:

1

usamos o comando "usermod -a -G". salvo no diretório onde o comando for executado: # deluser eags --remove-home --backup Se executasse o comando "ls" depois de remover o usuário "eags" usando a opção de backup. veria que foi criado o arquivo "eags. Além da configuração dos usuários. O diretório home é especialmente importante. como em: # usermod -a -G maria intranet 2 . Imagine um caso em que você tenha um servidor compartilhado entre vários usuários. seguido pelo login e o grupo ao qual ele deve ser adicionado (um de cada vez). sem remover o home ou qualquer outro arquivo usando o comando "passwd -l". ou outras pastas (como o diretório de spool dos e-mails). use a opção "--backup". use o "passwd -u". Uma opção saudável ao removê-lo é criar um backup. como em: # adduser maria intranet No CentOS e em outras distribuições derivadas do Red Hat. o diretório home é importante.GERÊNCIA DE USUÁRIO Prof. usamos o comando "groupadd". seguido do usuário e do grupo ao qual ele será adicionado. "jose" e "eags" devem ter acesso à pasta "/var/www/intranet". como em: # passwd -u eags O Fedora e o CentOS incluem o system-config-users. o comando remove apenas a conta. um utilitário gráfico de administração de usuários.bz2". No caso delas. Para desbloquear a conta posteriormente. pois ele guarda todas as configurações e os arquivos do usuário. de forma que em um servidor você só deve removê-lo depois de ter realmente certeza do que está fazendo. sem apagar o diretório home. definindo as permissões de acesso de forma mais granular. temos a configuração dos grupos.: Leonardo Barboza # deluser eags Por questão de segurança. Para isso. como em: # deluser eags --remove-home Como comentei. fazendo com que o sistema passe a recursar qualquer senha inserida na hora do login. como em: # passwd -l eags O "passwd -l" realmente trava a conta. Você também pode bloquear temporariamente um usuário. onde apenas três deles. Uma versão levemente modificada dele pode ser encontrada no Ubuntu e em outras versões baseadas no Debian. adicione o parâmetro "--remove-home". de forma que você possa restaurá-lo mais tarde caso necessário. que permitem organizar os usuários. contendo os arquivos do usuário. que contém os arquivos do site interno da empresa. referente ao backup. usamos o próprio comando "adduser". Para remover o usuário apagando também o diretório home. por concentrar todos os arquivos do usuário. adicionar os três usuários ao grupo e ajustar as permissões da pasta de forma que o grupo tenha permissão de escrita.LINUX .tar. Para adicionar o grupo. na forma do "users-admin". o comando "adduser" é um link para o comando "useradd". Uma forma simples fazer isso é criar um grupo. como em: # groupadd intranet Para adicionar os usuários desejados ao grupo. "maria". que faz parte do pacote "gnome-systemtools". que cria um arquivo compactado. que não suporta essa opção.

Sign up to vote on this title
UsefulNot useful