Академический Документы
Профессиональный Документы
Культура Документы
# adduser joao
cria o usuário joao, especificando uma senha inicial
# passwd joao
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:
joao:x:1001:1001:,,,:/home/joao:/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
joao:$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 "joao", 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:
# deluser joao
Por questão de segurança, o comando remove apenas a conta, sem apagar o diretório
home, ou outras pastas (como o diretório de spool dos e-mails). O diretório home
é especialmente importante, 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. Para remover o usuário apagando também o
diretório home, adicione o parâmetro "--remove-home", como em:
# deluser joao --remove-home
# passwd -l joao
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 joao
O primeiro "d" indica que se trata de um diretório. As três letras seguintes (rwx)
indicam as permissões de acesso para o dono da pasta, que no caso possui acesso
completo. Em seguida, temos as permissões de acesso para o grupo (r-x), cujos
integrantes podem listar o conteúdo da pasta (x) e podem ler os arquivos (r), sem
poderem alterar nada. As três últimas letras (r-x) indicam as permissões para os
demais usuários, que também podem apenas ler.
O "root root" indica o dono e o grupo ao qual pertence a pasta, no caso o root.
Ao cadastrar um usuário no sistema é sempre criado um grupo com o mesmo nome
(contendo apenas o próprio usuário), o que explica o fato da pasta pertencer ao
usuário "root" e também ao grupo "root". :)
Para que os usuários do grupo "intranet" possam alterar o conteúdo da pasta, o
primeiro passo é alterar as permissões, transferindo a posse do grupo "root" para
o grupo "intranet". Nesse caso não precisamos alterar o dono da pasta, que pode
continuar sendo o root:
O "-R" no exemplo faz com que a alteração seja aplicada de forma recursiva,
afetando todos os arquivos e sub-pastas. Sem ele, a alteração seria aplicada
apenas à pasta propriamente dita, mas não ao seu conteúdo. Em seguida,
especificamos o novo dono e o novo grupo, separados por ":", seguido da pasta.
Com isso, as permissões serão alteradas para:
Falta agora alterar as permissões de acesso para o grupo, de forma que os usuários
possam finalmente escrever na pasta. Para isso, usamos o comando "chmod -R g+rw",
que especifica que o grupo (g) terá permissão de leitura e escrita (+rw):
+ : Adiciona a permissão
- : Remove a permissão
r : Permissão de leitura
w : Permissão de escrita
x : No caso dos arquivos indica permissão de escrita e, no caso da pasta,
permissão para ver o conteúdo.
Você pode também especificar as permissões de acesso no formato clássico, onde
as permissões são representadas por três números, como em:
Você simplesmente soma estes números para ter o número referente ao conjunto de
permissões que deseja: