Série RHCSA: Como Gerenciar Usuários e Grupos no RHEL 7 – Parte 3

Gerenciar um servidor RHEL 7, como é o caso de qualquer outro servidor Linux, exigirá que você saiba como adicionar, editar, suspender ou excluir contas de usuário e conceder aos usuários as permissões necessárias para arquivos, diretórios e outros recursos do sistema para realizar suas tarefas atribuídas.

RHCSA: User and Group Management – Part 3

Gerenciando Contas de Usuário

Para adicionar uma nova conta de usuário a um servidor RHEL 7, você pode executar um dos dois comandos a seguir como root:

# adduser [new_account]
# useradd [new_account]

Quando uma nova conta de usuário é adicionada, por padrão, as seguintes operações são realizadas.

  1. Seu diretório pessoal é criado (/home/username a menos que especificado de outra forma).
  2. Os arquivos ocultos .bash_logout, .bash_profile e .bashrc são copiados dentro do diretório pessoal do usuário e serão usados para fornecer variáveis de ambiente para sua sessão de usuário. Você pode explorar cada um deles para mais detalhes.
  3. A mail spool directory is created for the added user account.
  4. A group is created with the same name as the new user account.

O resumo completo da conta é armazenado no arquivo /etc/passwd. Este arquivo contém um registro por conta de usuário do sistema e possui o seguinte formato (os campos são separados por dois pontos):

[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
  1. Esses dois campos [username] e [Comment] são autoexplicativos.
  2. O segundo campo ‘x’ indica que a conta está protegida por uma senha sombreada (em /etc/shadow), que é usada para fazer login como [username].
  3. Os campos [UID] e [GID] são inteiros que mostram a Identificação do Usuário e a Identificação do Grupo primário ao qual [username] pertence, respectivamente.

Finalmente,

  1. O [Diretório pessoal] mostra a localização absoluta do diretório pessoal de [nome de usuário], e
  2. [Shell padrão] é o shell atribuído a este usuário quando ele/ela faz login no sistema.

Outro arquivo importante com o qual você deve se familiarizar é /etc/group, onde as informações de grupo são armazenadas. Assim como acontece com /etc/passwd, há um registro por linha e seus campos também são delimitados por dois pontos:

[Group name]:[Group password]:[GID]:[Group members]

onde,

  1. [Nome do grupo] é o nome do grupo.
  2. Este grupo usa uma senha de grupo? (Um “x” significa não).
  3. [GID]: o mesmo que em /etc/passwd.
  4. [Membros do grupo]: uma lista de usuários, separados por vírgulas, que são membros de cada grupo.

Depois de adicionar uma conta, a qualquer momento, você pode editar as informações da conta do usuário usando usermod, cuja sintaxe básica é:

# usermod [options] [username]

Leia também:
15 Exemplos do Comando ‘useradd’
15 Exemplos do Comando ‘usermod’

EXEMPLO 1: Definindo a data de expiração para uma conta

Se trabalha para uma empresa que tem alguma política para habilitar uma conta por um certo intervalo de tempo, ou se deseja conceder acesso por um período limitado de tempo, pode usar a bandeira --expiredate seguida por uma data no formato AAAA-MM-DD. Para verificar se a alteração foi aplicada, pode comparar a saída de

# chage -l [username]

antes e depois de atualizar a data de expiração da conta, como mostrado na seguinte imagem.

Change User Account Information
EXEMPLO 2: Adicionando o usuário a grupos suplementares

Além do grupo principal que é criado quando uma nova conta de usuário é adicionada ao sistema, um usuário pode ser adicionado a grupos suplementares usando as opções combinadas -aG, ou –append –groups, seguidas por uma lista separada por vírgulas de grupos.

EXEMPLO 3: Alterando a localização padrão do diretório home do usuário e/ou alterando seu shell

Se por algum motivo precisar alterar a localização padrão do diretório home do usuário (diferente de /home/nome_de_usuário), precisará usar as opções -d, ou –home, seguidas pelo caminho absoluto para o novo diretório home.

Se um usuário deseja usar outro shell que não seja o bash (por exemplo, sh), que é atribuído por padrão, use usermod com a bandeira –shell, seguida pelo caminho para o novo shell.

EXEMPLO 4: Exibindo os grupos dos quais um usuário é membro

Após adicionar o usuário a um grupo suplementar, pode verificar que ele agora realmente pertence a tal(is) grupo(s):

# groups [username]
# id [username]

A seguinte imagem representa Exemplos 2 a 4:

Adding User to Supplementary Group

No exemplo acima:

# usermod --append --groups gacanepa,users --home /tmp --shell /bin/sh tecmint

Para remover um usuário de um grupo, omita o interruptor --append no comando acima e liste os grupos aos quais deseja que o usuário pertença após a bandeira --groups.

EXEMPLO 5: Desabilitando conta bloqueando senha

Para desabilitar uma conta, você precisará usar o -L (L minúsculo) ou a opção –lock para bloquear a senha de um usuário. Isso impedirá que o usuário consiga fazer login.

EXEMPLO 6: Desbloqueando senha

Quando precisar reabilitar o usuário para que ele possa fazer login no servidor novamente, use o -U ou a opção –unlock para desbloquear a senha de um usuário que foi bloqueada anteriormente, conforme explicado no Exemplo 5 acima.

# usermod --unlock tecmint

A seguinte imagem ilustra Exemplos 5 e 6:

Lock Unlock User Account
EXEMPLO 7: Excluindo um grupo ou uma conta de usuário

Para excluir um grupo, você usará groupdel, enquanto para excluir uma conta de usuário usará userdel (adicione o interruptor –r se também desejar excluir o conteúdo de seu diretório home e mail spool):

# groupdel [group_name]        # Delete a group
# userdel -r [user_name]       # Remove user_name from the system, along with his/her home directory and mail spool

Se houver arquivos de propriedade de nome_do_grupo, eles não serão excluídos, mas o proprietário do grupo será definido para o GID do grupo que foi excluído.

Source:
https://www.tecmint.com/rhcsa-exam-manage-users-and-groups/