Linux Professional Institute Learning Logo.
Ir para o conteúdo principal
  • Home
    • Todos os recursos
    • LPI Materiais Didáticos
    • Colabore Conosco
    • Publishing Partners
    • Seja um Publishing Partner
    • Quem Somos
    • FAQ
    • Colaboradores
    • Contato
  • LPI.org
107.1 Lição 1
Tópico 105: Shells e scripts do Shell
105.1 Personalizar e trabalhar no ambiente shell
  • 105.1 Lição 1
  • 105.1 Lição 2
  • 105.1 Lição 3
105.2 Editar e escrever scripts simples
  • 105.2 Lição 1
  • 105.2 Lição 2
Tópico 106: Interfaces de usuário e Desktops
106.1 Instalar e configurar o X11
  • 106.1 Lição 1
106.2 Desktops gráficos
  • 106.2 Lição 1
106.3 Acessibilidade
  • 106.3 Lição 1
Tópico 107: Tarefas administrativas
107.1 Administrar contas de usuário, grupos e arquivos de sistema relacionados
  • 107.1 Lição 1
  • 107.1 Lição 2
107.2 Automatizar e agendar tarefas administrativas de sistema
  • 107.2 Lição 1
  • 107.2 Lição 2
107.3 Localização e internacionalização
  • 107.3 Lição 1
Tópico 108: Serviços essenciais do sistema
108.1 Manutenção da data e hora do sistema
  • 108.1 Lição 1
  • 108.1 Lição 2
108.2 Log do sistema
  • 108.2 Lição 1
  • 108.2 Lição 2
108.3 Fundamentos de MTA (Mail Transfer Agent)
  • 108.3 Lição 1
108.4 Configurar impressoras e impressão
  • 108.4 Lição 1
Tópico 109: Fundamentos de Rede
109.1 Fundamentos de protocolos de internet
  • 109.1 Lição 1
  • 109.1 Lição 2
109.2 Configuração persistente de rede
  • 109.2 Lição 1
  • 109.2 Lição 2
109.3 Soluções para problemas simples de rede
  • 109.3 Lição 1
  • 109.3 Lição 2
109.4 Configurar DNS cliente
  • 109.4 Lição 1
Tópico 110: Segurança
110.1 Tarefas administrativas de segurança
  • 110.1 Lição 1
110.2 Configurar a segurança do host
  • 110.2 Lição 1
110.3 Proteção de dados com criptografia
  • 110.3 Lição 1
  • 110.3 Lição 2
How to get certified
  1. Tópico 107: Tarefas administrativas
  2. 107.1 Administrar contas de usuário, grupos e arquivos de sistema relacionados
  3. 107.1 Lição 1

107.1 Lição 1

Certificação:

LPIC-1

Versão:

5.0

Tópico:

107 Tarefas administrativas

Objetivo:

107.1 Administrar contas de usuários, grupos e arquivos de sistema relacionados

Lição:

1 de 2

Introdução

A administração de usuários e grupos é uma parte fundamental do trabalho de qualquer administrador de sistema. As distribuições Linux modernas incluem interfaces gráficas que permitem gerenciar todas as atividades relacionadas a este aspecto com rapidez e facilidade. Essas interfaces são visualmente diferentes entre si, mas os recursos são os mesmos. Com essas ferramentas, torna-se possível visualizar, editar, adicionar e excluir usuários e grupos locais. No entanto, para tarefas de gerenciamento mais avançadas, é necessário usar a linha de comando.

Adicionando contas de usuário

No Linux, podemos adicionar uma nova conta de usuário com o comando useradd. Por exemplo, com privilégios de root, criamos uma nova conta de usuário chamada michael com uma configuração padrão, usando o seguinte:

# useradd michael

Quando você executa o comando useradd, as informações do usuário e do grupo armazenadas nos bancos de dados de senha e grupo são atualizadas para a conta de usuário recém-criada e, caso especificado, o diretório inicial do novo usuário também é criado, bem como um grupo com o mesmo nome da nova conta de usuário.

Depois de criar o novo usuário, você pode definir a senha dele usando o comando passwd. Para rever o ID de usuário (UID), ID de grupo (GID) e os grupos aos quais esse usuário pertence, usamos os comandos id e groups.

# passwd michael
Changing password for user michael.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# id michael
uid=1000(michael) gid=100(michael) groups=100(michael)
# groups michael
michael : michael
Note

Lembre-se de que qualquer usuário pode consultar seu UID, GID e os grupos aos quais pertence simplesmente usando os comandos id e groups sem argumentos, e que qualquer usuário pode alterar sua própria senha com o comando passwd. No entanto, apenas os usuários com privilégios de root podem alterar a senha de qualquer usuário.

As opções mais importantes que se aplicam ao comando useradd são:

-c

Cria uma nova conta de usuário com comentários personalizados (por exemplo, o nome completo do usuário).

-d

Cria uma nova conta de usuário com um diretório pessoal personalizado.

-e

Cria uma nova conta de usuário definindo uma data específica na qual ela será desabilitada.

-f

Cria uma nova conta de usuário definindo o número de dias após a expiração de uma senha durante os quais o usuário deve atualizar a senha (caso contrário, a conta será desabilitada).

-g

Cria uma nova conta de usuário com um GID específico.

-G

Cria uma nova conta de usuário adicionando-a a diversos grupos secundários.

-k

Cria uma nova conta de usuário copiando os arquivos de esqueleto de um diretório personalizado específico (esta opção só é válida se a opção -m ou --create-home for especificada).

-m

Cria uma nova conta de usuário com seu diretório inicial (se ele não existir).

-M

Cria uma nova conta de usuário sem seu diretório inicial.

-s

Cria uma nova conta de usuário com um shell de login específico.

-u

Cria uma nova conta de usuário com um UID específico.

Veja a lista completa de opções nas páginas de manual do comando useradd.

Modificando contas de usuário

Às vezes, precisamos alterar um atributo de uma conta de usuário existente, como o nome de login, o shell de login, a data de expiração da senha e assim por diante. Nesses casos, empregamos o comando usermod.

# usermod -s /bin/tcsh michael
# usermod -c "Michael User Account" michael

Assim como no caso de useradd, o comando usermod requer privilégios de root.

Nos exemplos acima, o shell de login de michael é alterado primeiro e, em seguida, uma breve descrição é adicionada a esta conta de usuário. Lembre-se de que podemos modificar diversos atributos de uma vez, especificando-os em um único comando.

As opções mais importantes que se aplicam ao comando usermod são:

-c

Adiciona um breve comentário à conta de usuário especificada.

-d

Altera o diretório inicial da conta de usuário especificada. Quando usado com a opção -m, o conteúdo do diretório inicial atual é movido para o novo diretório inicial, que é criado se ainda não existir.

-e

Define a data de expiração da conta de usuário especificada.

-f

Define o número de dias após a expiração da senha durante os quais o usuário deve atualizá-la (caso contrário, a conta é desabilitada).

-g

Muda o grupo primário da conta de usuário especificada (o grupo deve existir).

-G

Adiciona grupos secundários à conta de usuário especificada. Cada grupo deve existir e ser separado do seguinte por uma vírgula, sem espaços em branco intermediários. Quando usada sozinha, esta opção remove todos os grupos existentes aos quais o usuário pertence; quando usada com a opção -a, ela simplesmente anexa novos grupos secundários aos existentes.

-l

Altera o nome de login da conta de usuário especificada.

-L

Bloqueia a conta de usuário especificada. Um ponto de exclamação é posto na frente da senha criptografada dentro do arquivo /etc/shadow, desabilitando assim o acesso com senha para esse usuário.

-s

Altera o shell de login da conta de usuário especificada.

-u

Altera o UID da conta de usuário especificada.

-U

Desbloqueia a conta de usuário especificada. Remove o ponto de exclamação na frente da senha criptografada no arquivo /etc/shadow.

Veja as páginas de manual do comando usermod para a lista completa de opções.

Tip

Lembre que, ao alterar o nome de login de uma conta de usuário, você provavelmente deve renomear o diretório pessoal desse usuário e outros itens relacionados a ele, como arquivos de spool de email. Lembre também que, ao alterar o UID de uma conta de usuário, provavelmente será preciso corrigir a propriedade dos arquivos e diretórios que estejam fora do diretório inicial do usuário (o ID do usuário é alterado automaticamente na caixa de email do usuário e em todos os arquivos pertencentes ao usuário e localizados no diretório inicial do usuário).

Excluindo contas de usuário

Se quiser excluir uma conta de usuário, você pode usar o comando userdel. Em particular, este comando atualiza as informações armazenadas nos bancos de dados de contas, removendo todas as entradas referentes ao usuário especificado. A opção -r também remove o diretório pessoal do usuário e todo o seu conteúdo, junto com o spool de email do usuário. Outros arquivos, localizados em outros locais, devem ser buscados e excluídos manualmente.

# userdel -r michael

Quanto a useradd e usermod, é necessário ter autoridade de root para excluir contas de usuário.

Adicionando, modificando e excluindo grupos

Como no caso do gerenciamento de usuários, podemos adicionar, modificar e excluir grupos usando os comandos groupadd, groupmod e groupdel com privilégios de root. Se quiser criar um novo grupo chamado developer, execute o seguinte comando:

# groupadd -g 1090 developer

A opção -g deste comando cria um grupo com um GID específico.

Warning

Lembre-se de que quando você adiciona uma nova conta de usuário, o grupo primário e os grupos secundários aos quais ela pertence precisam existir antes de iniciar o comando useradd.

Mais tarde, se você quiser renomear o grupo developer para web-developer e alterar seu GID, pode executar o seguinte:

# groupmod -n web-developer -g 1050 developer
Tip

Se você alterar o GID usando a opção -g, será necessário alterar o GID de todos os arquivos e diretórios que precisam continuar a pertencer ao grupo.

Finalmente, para excluir o grupo web-developer, execute o seguinte:

# groupdel web-developer

Não é possível excluir um grupo caso se trate do grupo principal de uma conta de usuário. Portanto, é preciso remover o usuário antes de remover o grupo. Quanto aos usuários, se você excluir um grupo, os arquivos pertencentes a esse grupo permanecerão em seu sistema de arquivos e não serão excluídos ou atribuídos a outro grupo.

O diretório de esqueleto

Quando você adiciona uma nova conta de usuário e cria seu diretório inicial, o diretório inicial recém-criado é preenchido com arquivos e pastas copiados do diretório de esqueleto (por padrão /etc/skel). A ideia é simples: um administrador de sistema deseja adicionar novos usuários que tenham os mesmos arquivos e diretórios em sua pasta pessoal. Portanto, caso queira personalizar os arquivos e pastas criados automaticamente no diretório inicial das novas contas de usuário, você deve adicionar esses novos arquivos e pastas ao diretório de esqueleto.

Tip

Se quiser listar todos os arquivos e diretórios no diretório de esqueleto, use o comando ls -al.

IO arquivo /etc/login.defs

No Linux, o arquivo /etc/login.defs especifica os parâmetros de configuração que controlam a criação de usuários e grupos. Além disso, os comandos mostrados nas seções anteriores utilizam os valores padrão deste arquivo.

As diretivas mais importantes são:

UID_MIN e UID_MAX

O intervalo de IDs de usuário que podem ser atribuídos a novos usuários comuns.

GID_MIN e GID_MAX

O intervalo de IDs de grupo que podem ser atribuídos a novos grupos comuns.

CREATE_HOME

Especifica se um diretório pessoal deve ser criado por padrão para novos usuários.

USERGROUPS_ENAB

Especifica se o sistema deve, por padrão, criar um novo grupo para cada nova conta de usuário com o mesmo nome do usuário, e se, ao deletar a conta do usuário, o grupo primário do usuário também deve ser removido, caso não contenha mais membros.

MAIL_DIR

O diretório de spool de email.

PASS_MAX_DAYS

O número máximo de dias que uma senha pode ser usada.

PASS_MIN_DAYS

O número mínimo de dias permitido entre mudanças de senha.

PASS_MIN_LEN

O comprimento mínimo aceitável da senha.

PASS_WARN_AGE

O número de dias de aviso antes que uma senha expire.

Tip

Ao gerenciar usuários e grupos, sempre verifique este arquivo para visualizar e, eventualmente, alterar o comportamento padrão do sistema, se necessário.

O comando passwd

Este comando é usado principalmente para alterar a senha de um usuário. Conforme descrito anteriormente, qualquer usuário pode alterar sua própria senha, mas apenas o root pode alterar a senha de qualquer usuário. Isso acontece porque o comando passwd tem o bit SUID definido (um s no lugar do sinalizador executável para o proprietário), o que significa que ele é executado com os privilégios do proprietário do arquivo (portanto, root).

# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 42096 mag 17  2015 /usr/bin/passwd

Dependendo das opções utilizadas com passwd, é possível controlar aspectos específicos do envelhecimento da senha:

-d

Apaga a senha de uma conta de usuário (desabilitando o usuário).

-e

Força a conta de usuário a alterar a senha.

-i

Define o número de dias de inatividade após a expiração de uma senha, durante os quais o usuário deve atualizar a senha (caso contrário, a conta será desabilitada).

-l

Bloqueia a conta de usuário (a senha criptografada é prefixada com um ponto de exclamação no arquivo /etc/shadow).

-n

Define o tempo de vida mínimo da senha.

-S

Exibe informações sobre o status da senha de uma conta de usuário específica.

-u

Desbloqueia a conta do usuário (o ponto de exclamação é removido do campo de senha no arquivo /etc/shadow).

-x

Define o tempo de vida máximo da senha.

-w

Define o número de dias de aviso antes que a senha expire, durante os quais o usuário é advertido de que a senha deve ser alterada.

Note

Os grupos também podem ter uma senha, que pode ser definida usando o comando gpasswd. Os usuários que não são membros de um grupo mas conhecem a senha podem ingressar nele temporariamente usando o comando newgrp. gpasswd também é usado para adicionar e remover usuários de um grupo e para definir a lista de administradores e membros comuns do grupo.

O comando chage

Este comando, que significa “alterar idade” (change age), é usado para alterar as informações de validade da senha de um usuário. O comando chage é restrito ao root, exceto com a opção -l, que pode ser executada por usuários comuns para listar informações sobre a expiração de senha de suas próprias contas.

As outras opções que se aplicam ao comando chage são:

-d

Define a última alteração de senha para uma conta de usuário.

-E

Define a data de expiração para uma conta de usuário.

-I

Define o número de dias de inatividade após a expiração de uma senha, durante os quais o usuário deve atualizar a senha (caso contrário, a conta será desabilitada).

-m

Define o tempo de vida mínimo da senha para uma conta de usuário.

-M

Define o tempo de vida máximo da senha para uma conta de usuário.

-W

Define o número de dias de aviso antes que a senha expire, durante os quais o usuário é advertido de que a senha deve ser alterada.

Exercícios Guiados

  1. Identifique a finalidade correspondente a cada um dos comandos a seguir:

    usermod -L

    passwd -u

    chage -E

    groupdel

    useradd -s

    groupadd -g

    userdel -r

    usermod -l

    groupmod -n

    useradd -m

  2. Identifique o comando chage correspondente a cada um dos seguintes comandos passwd:

    passwd -n

    passwd -x

    passwd -w

    passwd -i

    passwd -S

  3. Explique em detalhes a finalidade dos comandos da questão anterior:

  4. Que comandos podemos usar para bloquear uma conta de usuário? E quais comandos para desbloqueá-la?

Exercícios Exploratórios

  1. Usando o comando groupadd, crie os grupos administrators e developers. Suponha que você esteja logado como root.

  2. Depois de criar os grupos, execute o seguinte comando: useradd -G administrators,developers kevin. Quais operações esse comando realiza? Suponha que CREATE_HOME e USERGROUPS_ENAB em /etc/login.defs estão definidos como yes.

  3. Crie um novo grupo chamado designers, renomeie-o como web-designers e adicione esse novo grupo aos grupos secundários da conta de usuário kevin. Identifique todos os grupos a que kevin pertence e seus IDs.

  4. Remova apenas o grupo developers dos grupos secundários de kevin.

  5. Defina a senha para a conta de usuário kevin.

  6. Usando o comando chage, primeiro verifique a data de expiração da conta de usuário kevin e depois altere-a para 31 de dezembro de 2022. Que outro comando pode ser usado para alterar a data de expiração de uma conta de usuário?

  7. Adicione uma nova conta de usuário chamada emma com UID 1050 e defina administrators como seu grupo principal e developers e web-designers como seus grupos secundários.

  8. Mude o shell de login de emma para /bin/sh.

  9. Remova as contas de usuário emma e kevin e os grupos administrators, developers e web-designers.

Resumo

Nesta lição, você aprendeu:

  • Os fundamentos do gerenciamento de usuários e grupos no Linux.

  • Como adicionar, modificar e remover contas de usuário.

  • Como adicionar, modificar e remover contas de grupo.

  • Manter o diretório de esqueleto.

  • Editar o arquivo que controla a criação de usuários e grupos.

  • Alterar as senhas das contas de usuário.

  • Alterar as informações de validade da senha das contas de usuário.

Os seguintes arquivos e comandos foram discutidos nesta lição:

useradd

Cria uma nova conta de usuário.

usermod

Modifica uma conta de usuário.

userdel

Exclui uma conta de usuário.

groupadd

Cria uma nova conta de grupo.

groupmod

Modifica uma conta de grupo.

groupdel

Exclui uma conta de grupo.

passwd

Altera a senha das contas de usuário e controla todos os aspectos do envelhecimento da senha.

chage

Altera as informações de expiração da senha do usuário.

/etc/skel

A localização padrão do diretório de esqueleto.

/etc/login.defs

O arquivo que controla a criação de usuários e grupos e fornece valores padrão para diversos parâmetros de contas de usuário.

Respostas aos Exercícios Guiados

  1. Identifique a finalidade correspondente a cada um dos comandos a seguir:

    usermod -L

    Bloquear a conta de usuário

    passwd -u

    Desbloquear a conta de usuário

    chage -E

    Definir a data de expiração da conta de usuário

    groupdel

    Excluir o grupo

    useradd -s

    Criar uma nova conta de usuário com um shell de login específico

    groupadd -g

    Criar um novo grupo com um GID específico

    userdel -r

    Remover a conta de usuário e todos os arquivos em seu diretório inicial, o próprio diretório inicial e o spool de email do usuário

    usermod -l

    Alterar o nome de login da conta de usuário

    groupmod -n

    Alterar o nome do grupo

    useradd -m

    Criar uma nova conta de usuário e seu diretório inicial

  2. Identifique o comando chage correspondente a cada um dos seguintes comandos passwd:

    passwd -n

    chage -m

    passwd -x

    chage -M

    passwd -w

    chage -W

    passwd -i

    chage -I

    passwd -S

    chage -l

  3. Explique em detalhes a finalidade dos comandos da questão anterior:

    No Linux, podemos usar o comando passwd -n (ou chage -m) para definir o número mínimo de dias entre as mudanças de senha, o comando passwd -x (ou chage -M) para definir o número máximo de dias durante os quais uma senha é válida, o comando passwd -w (ou chage -W) para definir o número de dias de aviso antes que a senha expire, o comando passwd -i (ou chage -I) para definir o número de dias de inatividade durante os quais o usuário deve alterar a senha e o comando passwd -S (ou chage -l) para exibir informações breves sobre a senha da conta de usuário.

  4. Que comandos podemos usar para bloquear uma conta de usuário? E quais comandos para desbloqueá-la?

    Se quisermos bloquear uma conta de usuário, podemos usar um destes comandos: usermod -L, usermod --lock e passwd -l. Já para desbloqueá-la, os comandos seriam usermod -U, usermod --unlock e passwd -u.

Respostas aos Exercícios Exploratórios

  1. Usando o comando groupadd, crie os grupos administrators e developers. Suponha que você esteja logado como root.

    # groupadd administrators
    # groupadd developers
  2. Depois de criar os grupos, execute o seguinte comando: useradd -G administrators,developers kevin. Quais operações esse comando realiza? Suponha que CREATE_HOME e USERGROUPS_ENAB em /etc/login.defs estão definidos como yes.

    O comando adiciona um novo usuário, chamado kevin, à lista de usuários do sistema, cria seu diretório inicial (CREATE_HOME é definido como sim e, portanto, a opção -m pode ser omitida) e cria um grupo, chamado kevin, como grupo principal dessa conta de usuário (USERGROUPS_ENAB é definido como sim). Finalmente, os arquivos e pastas contidos em um diretório de esqueleto são copiados para o diretório inicial de kevin.

  3. Crie um novo grupo chamado designers, renomeie-o como web-designers e adicione esse novo grupo aos grupos secundários da conta de usuário kevin. Identifique todos os grupos a que kevin pertence e seus IDs.

    # groupadd designers
    # groupmod -n web-designers designers
    # usermod -a -G web-designers kevin
    # id kevin
    uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1029(developers),1031(web-designers)
  4. Remova apenas o grupo developers dos grupos secundários de kevin.

    # usermod -G administrators,web-designers kevin
    # id kevin
    uid=1010(kevin) gid=1030(kevin) groups=1030(kevin),1028(administrators),1031(web-designers)

    O comando usermod não inclui a opção de remover apenas um grupo; portanto, você precisa especificar todos os grupos secundários aos quais o usuário pertence.

  5. Defina a senha para a conta de usuário kevin.

    # passwd kevin
    Changing password for user kevin.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.
  6. Usando o comando chage, primeiro verifique a data de expiração da conta de usuário kevin e depois altere-a para 31 de dezembro de 2022. Que outro comando pode ser usado para alterar a data de expiração de uma conta de usuário?

    # chage -l kevin | grep "Account expires"
    Account expires		: never
    # chage -E 2022-12-31 kevin
    # chage -l kevin | grep "Account expires"
    Account expires		: dec 31, 2022

    O comando usermod com a opção -e equivale a chage -E.

  7. Adicione uma nova conta de usuário chamada emma com UID 1050 e defina administrators como seu grupo principal e developers e web-designers como seus grupos secundários.

    # useradd -u 1050 -g administrators -G developers,web-designers emma
    # id emma
    uid=1050(emma) gid=1028(administrators) groups=1028(administrators),1029(developers),1031(web-designers)
  8. Mude o shell de login de emma para /bin/sh.

    # usermod -s /bin/sh emma
  9. Remova as contas de usuário emma e kevin e os grupos administrators, developers e web-designers.

    # userdel -r emma
    # userdel -r kevin
    # groupdel administrators
    # groupdel developers
    # groupdel web-designers

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

Próxima Lição

107.1 Administrar contas de usuário, grupos e arquivos de sistema relacionados (107.1 Lição 2)

Ir para a próxima lição

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

A LPI é uma organização sem fins lucrativos.

© 2023 O Linux Professional Institute (LPI) é um organismo de apoio aos profissionais de Open Source e referência mundial em certificação. Com mais de 200.000 pessoas certificadas, somos o principal organismo de certificação independente para Linux e Open Source do mundo. O LPI certificou profissionais de mais de 180 países, oferece exames em diversos idiomas e tem centenas de parcerias de formação em todo o globo.

Nossa missão é proporcionar oportunidades econômicas e criativas para todos, tornando universalmente acessível a certificação de conhecimentos e competências em matéria de Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Entre em Contato
  • Política de Privacidade e Cookies

Encontrou um erro ou quer ajudar a aprimorar esta página? Escreva pra nós.

© 1999–2023 The Linux Professional Institute Inc. Todos os direitos reservados.