Saltar para o conteúdo
102 · LPIC-1 (parte 2)

107.1 Administrar contas de utilizador, grupos e ficheiros de sistema

TópicoT06ObjetivoAdministrar contas de utilizador, grupos e ficheiros de sistemaPeso3PáginasLPIC-1 (102) - Version 5.0

Resumo Conciso

Comandos de gestão de utilizadores

ComandoFunçãoOpções importantes
useraddCriar nova conta de utilizador-c (comentário), -d (dir. inicial), -e (expiração), -g (grupo primário), -G (grupos secundários), -m (criar home), -s (shell), -u (UID)
usermodModificar conta de utilizador-c, -d, -e, -g, -G, -l (renomear login), -L (bloquear), -s, -u, -U (desbloquear)
userdelRemover conta de utilizador-r (remover home e spool de email)
passwdAlterar senha e aging-d (apagar), -e (forçar troca), -l/-u (bloquear/desbloquear), -n (idade mín.), -x (idade máx.), -S (status)
chageAlterar info de expiração da senha-d (última alteração), -E (expiração da conta), -I (inatividade), -m (idade mín.), -M (idade máx.), -W (aviso)

Comandos de gestão de grupos

ComandoFunçãoOpções importantes
groupaddCriar novo grupo-g (GID específico)
groupmodModificar grupo-n (renomear), -g (alterar GID)
groupdelRemover grupo
getentConsultar bases de dados passwd/grouppasswd <user>, group <group>
idMostrar UID, GID e grupos de um utilizador
groupsMostrar grupos de um utilizador

Ficheiros fundamentais

FicheiroCamposDescrição
/etc/passwd7 campos (:)Nome, senha (x), UID, GID, GECOS, home, shell
/etc/shadow9 campos (:)Nome, hash senha, última troca, idade mín/máx, aviso, inatividade, expiração, reservado
/etc/group4 campos (:)Nome, senha (x), GID, membros
/etc/gshadow4 campos (:)Nome, senha cript., administradores, membros
/etc/skel/Directório esqueleto (copiado para novos homes — ver T01)
/etc/login.defsParâmetros: UID_MIN/MAX, GID_MIN/MAX, CREATE_HOME, USERGROUPS_ENAB, PASS_MAX_DAYS, etc.

Bloquear/desbloquear contas

AçãoComandos
Bloquearusermod -L, passwd -l
Desbloquearusermod -U, passwd -u
Verificar bloqueioVerificar se o 2.º campo em /etc/shadow começa com !

Bits SUID/SGID

  • passwd tem SUID (-rwsr-xr-x): executado com privilégios de root.
  • crontab tem SGID (-rwxr-sr-x): executado com privilégios do grupo crontab.

Exercícios Exploratórios

Exercício Exploratório 1 — Criar grupos e utilizador

Enunciado: Crie os grupos administrators e developers, depois crie o utilizador kevin com esses grupos secundários.

bash
groupadd administratorsgroupadd developersuseradd -G administrators,developers kevinid kevin# uid=1010(kevin) gid=1010(kevin) groups=1010(kevin),1008(administrators),1009(developers)

O comando cria o utilizador, o seu grupo primário kevin (USERGROUPS_ENAB=yes), o diretório inicial (CREATE_HOME=yes) e adiciona os grupos secundários.

Exercício Exploratório 2 — Criar, renomear e gerir grupos

Enunciado: Crie o grupo designers, renomeie para web-designers e adicione-o aos grupos secundários de kevin.

bash
groupadd designersgroupmod -n web-designers designersusermod -a -G web-designers kevinid kevin# uid=1010(kevin) gid=1010(kevin) groups=1010(kevin),1008(administrators),1009(developers),1011(web-designers)

A opção -a é essencial para anexar sem remover grupos existentes.

Exercício Exploratório 3 — Remover um grupo secundário

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

bash
usermod -G administrators,web-designers kevinid kevin# uid=1010(kevin) gid=1010(kevin) groups=1010(kevin),1008(administrators),1011(web-designers)

usermod -G sem -a substitui todos os grupos secundários; é necessário listar todos os que se pretendem manter.

Exercício Exploratório 4 — Criar utilizador com parâmetros específicos

Enunciado: Adicione a conta emma com UID 1050, grupo primário administrators e grupos secundários developers e web-designers. Mude o shell para /bin/sh.

bash
useradd -u 1050 -g administrators -G developers,web-designers emmausermod -s /bin/sh emmaid emma# uid=1050(emma) gid=1008(administrators) groups=1008(administrators),1009(developers),1011(web-designers)

Exercício Exploratório 5 — Expiração de senha e limpeza

Enunciado: Verifique e altere a data de expiração da conta de kevin para 31/12/2022. Depois remova os utilizadores e grupos criados.

bash
chage -l kevin | grep "Account expires"# Account expires     : neverchage -E 2022-12-31 kevinchage -l kevin | grep "Account expires"# Account expires     : dec 31, 2022userdel -r emmauserdel -r kevingroupdel administratorsgroupdel developersgroupdel web-designers

usermod -e é equivalente a chage -E para definir a data de expiração da conta.