Como faço para agrupar o conteúdo do arquivo / etc / passwd e / etc / shadow em um novo arquivo pelo nome de usuário?

2

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?

    
por snoop 27.12.2014 / 14:30

2 respostas

2

Você pode usar o utilitário join

sudo bash -c 'join -t: <(sort -t: -k1,1 /etc/shadow) <(sort -t: -k1,1 /etc/passwd)'
    
por steeldriver 27.12.2014 / 14:55
1

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.

    
por isuru-buddhika 27.12.2014 / 14:46