Estou postando abaixo um script que eu fiz, como contribuição. Qualquer erro me corrijam ai.
/*aliás, gostaria que comentassem sobre o fato de abrir o arquivo de senhas para leitura, se é perigoso, mesmo a senha sendo encriptada */
Deise.
#abrindo o arquivo
$file = '/etc/shadow'; /*caso não tenha o shadow instalado substituir por /etc/passwd. Obs, o
usuário do apache precisa ter permissão para ler o arquivo*/
$open = fopen($file,r);
#Carrega o usuário e senha
$user = 'deise';/* aqui vai o post do usuário ex. $_POST[usuario] */
$pass = 'deise';
#"Expressão" para encontrar o usuário
$regex_usu = $user;
#Expressão para encontrar a senha no arquivo
$regex_pass = $user.'\[^\:]*)\:';
if($open){
$read = fread($open,8192);
if($read)
{
#
echo "leu o arquivo";
echo "<br>";
echo $read;
echo "<br>";
#
ereg($regex_usu,$read,$result_usu);
ereg($regex_pass,$read,$result_pass);
#
echo "usuário:";
print_r($result_usu[0]);
echo "<br>";
#
echo "Senha:";
print_r($result_pass[1]);
echo "<br>";
if($result_usu[0] == $user)
{
echo "usuário correto";
echo "<br>";
if (crypt($pass, $result_pass[1]) == $result_pass[1]) {
echo "Senha correta";
echo "<br>";
echo "Autenticação completa";
echo "<br>";
}else
{
echo "Senha incorreta";
echo "<br>";
}
}else
{
echo "Usuário incorreto";
echo "<br>";
}
}else
{
echo "Falhou ao ler o arquivo";
echo "<br>";
}
}else{
echo "Falhou ao abrir o arquivo";
echo "<br>";
}