Você pode usar o utilitário join
sudo bash -c 'join -t: <(sort -t: -k1,1 /etc/shadow) <(sort -t: -k1,1 /etc/passwd)'
Suponha que eu tenha conteúdo em / etc / shadow como este:
root:!!:16087::::::
ftp:!!:14796::::::
e no arquivo / etc / passwd assim:
ftp:x:40:49:FTP account:/srv/ftp:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
Eu quero agrupá-los como:
ftp:!!:14796::::::x:40:49:FTP account:/srv/ftp:/sbin/nologin
root:!!:16087:::::::x:0:0:root:/root:/bin/bash
O que eu fiz acima:
Primeiro, localizei o nome do usuário do comando a partir do arquivo e concatenando-o em uma única linha. Além disso, estou excluindo o nome de usuário da segunda linha (Como isso já está presente no início, então não é necessário duas vezes).
Qual será o comando simples?
Você pode usar o utilitário join
sudo bash -c 'join -t: <(sort -t: -k1,1 /etc/shadow) <(sort -t: -k1,1 /etc/passwd)'
Você pode usar a ferramenta de sombra na ferramenta de descriptografia de senhas John The Ripper
Para fazer isso, você precisa primeiro instalar o John no seu sistema.
Para isso, vá para o seu terminal e digite o seguinte comando.
sudo apt-get install john
Depois de instalar o John, use a sombra como segue,
sudo unshadow /etc/passwd /etc/shadow > $HOME/pwd.txt
Os dados de que você precisa estarão em um arquivo de texto chamado pwd.txt na sua pasta pessoal.