Pesquisa de site

LFCA: Aprenda gerenciamento de contas de usuário – Parte 5


Como administrador de sistema Linux, você terá a tarefa de garantir o bom fluxo de todas as operações de TI em sua organização. Dado que algumas operações de TI estão interligadas, um administrador de sistemas geralmente desempenha muitas funções, incluindo ser administrador de banco de dados ou rede.

Este artigo é a Parte 5 da série LFCA. Aqui nesta parte você se familiarizará com os comandos gerais de administração do sistema para criar e gerenciar usuários em um sistema Linux.

Gerenciamento de conta de usuário no Linux

Uma das principais responsabilidades de um administrador de sistemas Linux é criar e gerenciar usuários em um sistema Linux. Cada conta de usuário possui dois identificadores exclusivos: o nome de usuário e o ID do usuário (UID).

Essencialmente, existem 3 categorias principais de usuários no Linux:

Usuário raiz

O usuário root é o usuário mais poderoso em um sistema Linux e geralmente é criado durante o processo de instalação. O usuário root tem poder absoluto no sistema Linux ou em qualquer outro sistema operacional semelhante ao UNIX. O usuário pode acessar todos os comandos, arquivos e diretórios e modificar o sistema de acordo com sua preferência.

O usuário root pode atualizar o sistema, instalar e desinstalar pacotes, adicionar ou remover outros usuários, conceder ou revogar permissões e executar qualquer outra tarefa de administração do sistema sem quaisquer restrições.

O usuário root pode fazer praticamente qualquer coisa no sistema. A suposição dos sistemas Linux e do tipo UNIX é que você sabe muito bem o que está fazendo com o sistema. Dito isto, o usuário root pode facilmente quebrar o sistema. Basta você executar um comando fatal e o sistema virará fumaça.

Por esse motivo, executar comandos como usuário root é altamente desencorajado. Em vez disso, as boas práticas exigem que você configure um usuário sudo. Isto é, conceder privilégios sudo a um usuário normal para executar determinadas tarefas administrativas e restringir algumas tarefas apenas ao usuário root.

Usuário regular

Um usuário normal é um usuário de login normal que pode ser criado por um administrador de sistemas. Normalmente, existe a possibilidade de criar um durante o processo de instalação. No entanto, você ainda pode criar quantos usuários regulares forem necessários após a instalação.

Um usuário normal só pode executar tarefas e acessar arquivos e diretórios para os quais está autorizado. Se necessário, um usuário comum pode receber privilégios elevados para executar tarefas de nível administrativo. Usuários regulares também podem ser excluídos ou desativados quando necessário.

Conta de serviço

Esta é uma conta sem login criada quando um pacote de software é instalado. Essas contas são utilizadas pelos serviços para executar processos no sistema. Eles não foram projetados nem se destinam a realizar quaisquer tarefas rotineiras ou administrativas no sistema.

Arquivos de gerenciamento de usuários

As informações sobre usuários em um sistema Linux são armazenadas nos seguintes arquivos:

  • O arquivo /etc/passwd
  • O arquivo /etc/group
  • O arquivo /etc/gshadow
  • O arquivo /etc/shadow

Vamos entender cada arquivo e o que ele faz:

O arquivo /etc/passwd

O arquivo /etc/passwd contém muitas informações sobre os usuários que estão contidas em vários campos. Para visualizar o conteúdo do arquivo, basta usar o comando cat conforme mostrado.

cat /etc/passwd

Aqui está um trecho da saída.

tecmint:x:1002:1002:tecmint,,,:/home/tecmint:/bin/bash

Vamos nos concentrar na primeira linha e detalhar os vários campos. Começando pela extrema esquerda, temos o seguinte:

  • O nome de usuário: Este é o nome do usuário, neste caso, tecmint.
  • A Senha: A segunda coluna representa a senha criptografada do usuário. A senha não é impressa em texto simples; em vez disso, é usado um espaço reservado com um sinal x.
  • O UID: Este é o ID do usuário. É um identificador exclusivo para cada usuário.
  • O GID: este é o ID do grupo.
  • Uma breve descrição ou resumo do usuário.
  • Este é o caminho para o diretório inicial do usuário. Para o usuário tecmint, temos /home/tecmint.
  • Este é o shell de login. Para usuários de login regulares, isso geralmente é representado como /bin/bash. Para contas de serviço como SSH ou MySQL, isso geralmente é representado como /bin/false.

O arquivo /etc/group

Este arquivo contém informações sobre os grupos de usuários. Quando um usuário é criado, o shell cria automaticamente um grupo que corresponde ao nome de usuário do usuário. Isso é conhecido como grupo primário. O usuário é adicionado ao grupo principal após a criação.

Por exemplo, se você criar um usuário chamado bob, o sistema criará automaticamente um grupo chamado bob e adicionará o usuário bob ao grupo.

cat /etc/group

tecmint:x:1002:

O arquivo /etc/group possui 3 colunas. Da extrema esquerda, temos:

  • Nome do grupo. Cada nome de grupo deve ser exclusivo.
  • Senha do grupo. Geralmente representado por um espaço reservado x.
  • ID do grupo (GID)
  • Membros do grupo. Estes são membros que pertencem ao grupo. Este campo fica em branco se o usuário for o único membro do grupo.

NOTA: Um usuário pode ser membro de vários grupos. Da mesma forma, um grupo pode ter vários membros.

Para confirmar os grupos aos quais um usuário pertence, execute o comando:

groups username

Por exemplo, para verificar os grupos aos quais o usuário tecmint pertence, execute o comando:

groups tecmint

A saída confirma que o usuário pertence a dois grupos: tecmint e sudo.

tecmint : tecmint sudo

O arquivo /etc/gshadow

Este arquivo contém senhas criptografadas ou ‘ocultadas’ para contas de grupo e, por motivos de segurança, não pode ser acessado por usuários regulares. Só pode ser lido pelo usuário root e usuários com privilégios sudo.

sudo cat /etc/gshadow

tecmint:!::

Na extrema esquerda, o arquivo contém os seguintes campos:

  • Nome do grupo
  • Senha criptografada do grupo
  • Admin do grupo
  • Membros do grupo

O arquivo /etc/shadow

O arquivo /etc/shadow armazena as senhas reais dos usuários em um formato criptografado ou com hash. Novamente, os campos são separados por dois pontos e seguem o formato mostrado.

sudo cat /etc/shadow

tecmint:$6$iavr8PAxxnWmfh6J$iJeiuHeo5drKWcXQ.BFGUrukn4JWW7j4cwjX7uhH1:18557:0:99999:7:::

O arquivo possui 9 campos. Começando pela extrema esquerda temos:

  • O nome de usuário: Este é o seu nome de login.
  • A senha do usuário. Isso é apresentado em formato hash ou criptografado.
  • A última alteração de senha. Esta é a data desde que a senha foi alterada e é calculada desde a data da época. A época é 1º de janeiro de 1970.
  • A idade mínima da senha. Este é o número mínimo de dias que devem decorrer antes que uma senha possa ser definida.
  • A idade máxima da senha. Este é o número máximo de dias após os quais uma senha deve ser alterada.
  • O período de aviso. Como o nome sugere, este é o número de dias antes de uma senha expirar em que um usuário é notificado sobre a expiração iminente da senha.
  • O período de inatividade. O número de dias após a expiração de uma senha em que uma conta de usuário é desativada sem que o usuário altere a senha.
  • A data de expiração. A data em que a conta do usuário expirou.
  • Campo reservado. – Isto é deixado em branco.

Como adicionar usuários em um sistema Linux

Para distribuições Debian e Ubuntu, o utilitário adduser é usado para adicionar usuários.

A sintaxe é bastante simples e direta.

adduser username

Por exemplo, para adicionar um usuário chamado bob, execute o comando

adduser bob

A partir da saída, um usuário chamado ‘bob‘ é criado e adicionado a um grupo recém-criado chamado ‘bob‘. Além disso, o sistema também cria um diretório inicial e copia os arquivos de configuração nele.

Depois disso, será solicitada a senha do novo usuário e, em seguida, confirme-a. O shell também solicitará o nome completo do usuário e outras informações opcionais, como número do quarto e telefone comercial. Esta informação não é realmente necessária, por isso é seguro ignorá-la. Por fim, pressione 'Y' para confirmar se as informações fornecidas estão corretas.

Para sistemas RHEL e baseados em CentOS, use o comando useradd.

useradd bob

Em seguida, defina a senha do usuário usando o comando passwd da seguinte maneira.

passwd bob

Como excluir usuários em um sistema Linux

Para excluir um usuário do sistema, é aconselhável primeiro bloquear o login do usuário no sistema, conforme mostrado.

passwd -l bob

Se desejar, você pode fazer backup dos arquivos do usuário usando o comando tar.

tar -cvf /backups/bob-home-directory.tar.bz2  /home/bob

Finalmente, para excluir o usuário junto com o diretório inicial, use o comando deluser da seguinte forma:

deluser --remove-home bob

Além disso, você pode usar o comando userdel conforme mostrado.

userdel -r bob

Os dois comandos removem completamente o usuário junto com seus diretórios pessoais.

Conclusão

Essa foi uma visão geral dos comandos de gerenciamento de usuários que serão úteis especialmente ao gerenciar contas de usuários em seu ambiente de escritório. Experimente de vez em quando para aprimorar suas habilidades de administração de sistema.