O arquivo / etc / passwd é o arquivo mais importante no sistema operacional Linux. Este arquivo armazena informações essenciais sobre os usuários do sistema. Este arquivo pertence ao usuário root e para editá-lo, devemos ter privilégios de root. Mas tente evitar editar este arquivo. Agora vamos ver como esse arquivo se parece

Este arquivo contém uma entrada por linha. Isso significa que ele armazena as informações de um usuário em uma linha. A informação de utilizador contém sete campos e cada campo é separado pelo cólon ( : símbolo). Cada entrada no arquivo / etc / passwd se parece com isto:

Agora vamos entender cada campo um por um:

  1. Nome de usuário: Este campo armazena os nomes de usuário que são usados ​​durante o login no sistema. O comprimento deste campo é entre 1 e 32 caracteres.
  2. Senha : Este campo armazena a senha do usuário. O caractere x indica que a senha está armazenada no arquivo / etc / shadow no formato criptografado. Podemos usar o comando passwd para atualizar este campo.
  3. ID do usuário (UID) : o identificador do usuário é o número atribuído a cada usuário pelo sistema operacional para se referir aos usuários. O UID 0 é reservado para o usuário root. E 1-99 UID são reservados para outras contas predefinidas. E 100-999 são reservados pelo sistema para contas / grupos administrativos e do sistema.
  4. ID do grupo (GID) : o identificador do grupo é o número que indica o grupo principal de usuários. Na maioria das vezes é igual ao UID.
  5. Informações de ID do usuário (GECOS) : Este é um campo de comentário. Este campo contém s informações como o número de usuários de telefone, endereço ou nome completo do usuário. Este campo é usado pelo comando finger para obter informações sobre o usuário.
  6. Diretório inicial : Este campo contém o caminho absoluto do diretório inicial do usuário. Por padrão , os usuários são criados no diretório / home. Se este arquivo estiver vazio , o diretório inicial desse usuário será /
  7. Shell de login : este campo armazena o caminho absoluto do shell do usuário. Este shell é iniciado quando o usuário efetua login no sistema.

Agora que entendemos a estrutura do arquivo / etc / passwd, vamos ver um exemplo desse arquivo. Você pode visualizar o conteúdo do arquivo usando o arquivo cat como:

cat /etc/passwd

Podemos ver que existem muitos usuários com todas as informações.

Para procurar um usuário específico, podemos usar o comando grep . Agora, por exemplo, para obter informações sobre o usuário Nishant, podemos usar o seguinte comando:

grep nishant /etc/passwd

Verifique a permissão do arquivo / etc / passwd

Os usuários normais têm apenas permissões de leitura para o arquivo / etc / passwd. O único usuário root pode escrever neste arquivo. Para ver as permissões do arquivo / etc / passwd, podemos usar o comando ls da seguinte maneira:

ls -l /etc/passwd

A saída será 

Podemos ver que as permissões do arquivo / etc / passwd são rw-r – r– . Isso significa que o usuário root tem acesso de leitura e gravação e outros grupos e usuários têm acesso somente leitura ao arquivo.

Para obter mais detalhes como tamanho, modifique a hora deste arquivo, podemos usar o comando stat:

stat /etc/passwd

Lendo o arquivo / etc / passwd:

Podemos ler o arquivo / etc / passwd de forma mais amigável usando o loop while e o separador IFS. Um loop while é usado para iterar através do arquivo, e IFS é uma variável especial usada para separar a string por um caractere específico.

#!/bin/bash

# using while loop to iterate through file
while IFS=: read -r f1 f2 f3 f4 f5 f6 f7        
do
echo "User $f1 use $f7 shell and stores files in $f6 directory."
done < /etc/passwd                             

Depois de usar este script, obtemos a seguinte saída: