Respostas:
TL; DR: Não, a senha é armazenada como hashes que, em geral, não podem ser recuperados.
O Linux não armazena senhas de texto sem formatação em nenhum lugar por padrão . Eles são hash ou criptografados de outra forma através de uma variedade de algoritmos. Portanto, em geral, não, isso não é possível com os dados armazenados.
Se você tiver senhas armazenadas em algum lugar que não seja o /etc/passwd
banco de dados, elas poderão ser armazenadas de uma maneira que permita isso. htpasswd
os arquivos podem conter senhas mal criptografadas e outros aplicativos podem armazenar hashes mais fracos ou senhas de texto sem formatação por vários motivos (geralmente ruins).
Além disso, os arquivos de configuração do usuário podem conter senhas não criptografadas ou senhas fracamente protegidas por vários motivos - buscar o conteúdo de busca de outro serviço .netrc
, ou coisas simples e automatizadas podem incluir a senha.
Se as senhas forem hash ou criptografadas com um algoritmo fraco e mais antigo (3DES, MD5), seria possível descobrir de forma razoavelmente eficiente / barata qual era a senha - embora atacando os dados em vez de apenas reverter a transformação. (por exemplo: coisas como http://project-rainbowcrack.com/ ou http://www.openwall.com/john/ )
Como você é root, também é possível atacar a senha do usuário em outro nível - substitua o binário de login, ou o sudo, ou parte do PAM, etc., por algo que irá capturar a senha quando ela for inserida.
Portanto, em específico, não, mas, em geral, o acesso root facilita os detalhes dos usuários por meio de vários canais laterais.
Em contraste com algumas outras respostas aqui, eu diria que a resposta simples para esta e muitas outras perguntas que terminam com "se você tem raiz" é SIM.
Basicamente, o root pode fazer qualquer coisa na máquina que o próprio sistema possa fazer. O sistema pode aceitar sua senha, para que o root possa aceitar sua senha, ou a sua própria no lugar da sua, com esforço suficiente. Mais importante, ele pode simplesmente mudar sua senha ou TORNAR-SE.
Especificamente, as senhas geralmente são criptografadas. Geralmente, esse é o tipo de algoritmo "unidirecional", que gera um número (um hash) que pode ser usado para verificar a senha, mas geralmente não para reverter o número e recuperar a senha novamente. Portanto, não basta ler um arquivo para obter a senha de alguém.
Dito isto, você PODE ler o histórico do shell e o histórico de logon, onde eles provavelmente digitaram a senha em vez do nome de usuário em algum momento, ou digitaram em um shell em vez de em um prompt de senha. Nesse caso, seria texto sem formatação. Isso é perturbadoramente comum em terminais baseados em texto, sem boas soluções que eu conheço.
No entanto, mesmo deixando esse problema de lado, a criptografia "unidirecional" não é realmente unidirecional. Existem muitas ferramentas disponíveis que passarão por muitas combinações de frases secretas, criptografando-as com o mesmo processo unidirecional, até encontrar uma que corresponda. Eles então sabem a senha que terá acesso (embora como root, eles JÁ tenham acesso, nessa máquina).
Pior, existem tabelas arco-íris, que são respostas pré-computadas para o processo acima: as pessoas já geraram a senha original que vem da senha criptografada especificada. Usando isso, é uma pesquisa simples - sem a necessidade de tentativas de cracking demoradas.
Novamente, o acesso no nível da raiz é A coisa a proteger. Com isso comprometido, a máquina inteira e tudo nela estão comprometidos. É hora de começar de novo, incluindo informar a todos os usuários que sua empresa não pode mais ser confiável para proteger sua privacidade. E, sim, isso pode significar fechar negócios.
Se você tiver root
, poderá executar um cracker de senha /etc/shadow
(assumindo senhas locais e não LDAP ou Kerberos, etc.). Isso pode não ser eficaz se eles escolherem boas senhas e o sistema estiver configurado para usar hash de senha forte. Mas as senhas do sistema não são armazenadas em texto sem formatação; senhas não estão diretamente disponíveis nem para root
.
Todas as senhas são armazenadas no /etc/shadow
arquivo. Você pode abrir esse arquivo usando o acesso root e ver hash value
essas senhas para cada usuário (mesmo usuário root).
A menos que você tenha algum tipo de software de descriptografia de senha, não poderá converter esses valores de hash novamente em texto normal.
Ainda assim, se você tiver acesso ao usuário root, poderá alterar a senha de qualquer usuário normal usando o comando a seguir e acessar a conta deles.
root@localhost$ passwd pradeep
Isso solicitará a nova senha que você deseja definir para o usuário pradeep
. Dessa forma, você pode alterar a senha para o pradeep.
Agora você pode acessar da conta dele:
root@localhost$ su pradeep
Isso resultará na mudança para o usuário pradeep e você obterá um terminal como este:
pradeep@localhost$