Segurança

Onde e como as senhas são armazenadas no Linux?

Onde e como as senhas são armazenadas no Linux?
O nome de usuário com uma senha correspondente para uma conta específica é o requisito principal por meio do qual um usuário pode acessar um sistema Linux. A senha de todas as contas de usuário é salva em um arquivo ou banco de dados para que um usuário possa ser verificado durante a tentativa de login no sistema. Cada usuário não tem habilidades e conhecimentos suficientes para localizar este arquivo em seu sistema. No entanto, se você obtiver acesso ao banco de dados ou a um arquivo que mantém todas as senhas do usuário de login, poderá acessar facilmente o sistema Linux. Quando um usuário insere um nome de usuário e senha no Linux para login, ele verifica a senha inserida em relação a uma entrada em vários arquivos do diretório '/ etc'.

Os arquivos / etc / passwd mantêm todas as informações importantes que são necessárias para o login do usuário. Para explicar em palavras mais simples, o arquivo / etc / passwd armazena os detalhes da conta do usuário. Este arquivo é um arquivo de texto simples que contém uma lista completa de todos os usuários em seu sistema Linux. Ele contém as informações sobre nome de usuário, senha, UID (id do usuário), GID (id do grupo), shell e diretório inicial. Este arquivo deve ter permissões de leitura, pois muitos utilitários de linha de comando são usados ​​para mapear os IDs do usuário para o nome do usuário. Porém, deve ter permissões de acesso de gravação limitadas apenas para contas de superusuário ou usuário root.

Este artigo demonstrará como e onde você pode armazenar senhas de contas de usuários do sistema na distribuição Linux. Implementamos todas as demonstrações no Ubuntu 20.04 sistema. No entanto, você pode encontrar o arquivo / etc / passwd em qualquer distribuição Linux.

Pré-requisitos

Você deve ter privilégios de root para executar comandos administrativos.

Noções básicas sobre o arquivo / etc / passwd

O arquivo / etc / passwd contém as informações sobre a conta do usuário do seu sistema. Todos os campos armazenados são separados do sinal de dois pontos “:”.
Ao executar o seguinte comando, você verá cada entrada de arquivo do arquivo / etc / passwd:

$ cat / etc / passwd

O comando acima irá listar todos os usuários do seu sistema Linux.
O seguinte tipo de formato será exibido na tela do terminal:

Detalhes sobre o formato dos campos / etc / passwd
Da imagem acima:

Nome do usuário: O campo um representa o nome do usuário. O comprimento do campo de nome de usuário é definido entre 1-32 caracteres. Isso é usado quando um usuário faz login no sistema. No exemplo acima, 'khuzdar' é o nome de usuário.
Senha: No exemplo acima, o caractere “x” mostra que a senha é armazenada de forma criptografada no arquivo / etc / shadow.
ID do usuário (UID): A ID do usuário deve ser atribuída separadamente a cada usuário. O UID zero é atribuído ao usuário root e IDs de usuário de 1 a 99 são atribuídos a contas predefinidas ou padrão. Os UIDs adicionais de 100-999 são atribuídos a contas ou grupos administrativos do sistema. Na captura de tela acima, o ID do usuário é 1001.
ID do grupo (GID): O próximo campo representa o ID do grupo. O GID é armazenado no arquivo / etc / group. Com base no exemplo acima, o usuário pertence ao grupo id 1001.
Informações sobre o ID do usuário: O campo a seguir é destinado a comentários. Neste campo, você pode adicionar algumas informações adicionais sobre o usuário especificado, como o nome completo do usuário, número de telefone, etc. No entanto, no exemplo acima, nenhum número de telefone é fornecido pelo usuário.
Diretório inicial: Este campo mostra a localização do diretório inicial que é atribuído ao usuário atual. Se o diretório especificado não existir, ele exibirá “/”. A imagem acima mostra a localização do usuário realçado no diretório inicial, que é home / kbuzdar.
Comando // shell: O caminho absoluto padrão de um shell ou comando é / bin / bash. Isso é conhecido como shell. Por exemplo, sysadmin usando o shell nologin. Ele se comporta como o shell de substituição para as contas de usuário do sistema. Se o shell estiver localizado no caminho para / sbin / nologin e o usuário quiser logar diretamente no sistema Linux, o shell / sbin / nologin irá fechar ou desabilitar a conexão.

Pesquisar usuário no arquivo / etc / passwd

Você pode pesquisar por um usuário específico com o arquivo / etc / passwd, usando o comando grep. Por exemplo, queremos pesquisar o nome de usuário 'kbuzdar' no arquivo / etc / passwd, usando a seguinte sintaxe, então podemos facilmente pesquisar um usuário especificado, economizando nosso tempo:

$ grep nome de usuário / etc / passwd

A sintaxe acima mudará para a seguinte forma:

$ grep kbuzdar / etc / passwd


Ou

$ grep -w '^ kbuzdar' / etc / passwd

Exibir permissões no arquivo / etc / passwd

Como mencionamos acima, todos os outros usuários, exceto o root, devem ser capazes de ler a permissão no arquivo / etc / passwd, e que o proprietário deve ser superusuário ou root.
Digite o seguinte para verificar as permissões de leitura no arquivo:

$ ls -l / etc / passwd

O seguinte exemplo de saída será exibido no terminal:

Lendo o arquivo / etc / passwd

Você pode ler o arquivo / etc / passwd em seu sistema Linux usando o seguinte script bash ou executar diretamente o que está escrito abaixo enquanto os comandos de loop no terminal.
Crie um arquivo de texto e cole o seguinte código nele:

#!/ bin / bash
# total de sete campos de / etc / passwd armazenados como $ f1, f2…, $ f7
enquanto IFS =: ler -r f1 f2 f3 f4 f5 f6 f7
Faz
echo "O usuário $ f1 usa o shell $ f7 e armazena os arquivos no diretório $ f6."
feito < /etc/passwd

Usando o loop while, ele lerá todos os sete campos e, em seguida, exibirá iterativamente o conteúdo do arquivo no terminal.
Salve o arquivo acima com o nome 'readfile.sh '.

Agora, execute o arquivo acima usando o seguinte comando:

$ bash readfile.sh

Explorar o arquivo / etc / shadow

O arquivo / etc / shadow contém todas as suas senhas criptografadas que estão armazenadas neste arquivo que só podem ser lidas por usuários root.
Vamos executar o seguinte comando para exibir o conteúdo:

$ sudo cat / etc / shadow

Você pode ver todas as senhas no formato criptografado:

Conclusão

Vimos no artigo acima, todos os detalhes da conta do usuário e senhas armazenadas no arquivo / etc / passwd no sistema Linux. Você pode ler este arquivo, mas apenas os usuários root têm as “permissões de gravação”. Além disso, também vimos todas as senhas criptografadas armazenadas no arquivo / etc / shadow. Você também pode explorar o arquivo / etc / group para obter detalhes sobre o grupo do usuário.

SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...