Gestão de Utilizadores e Sudo em Linux: Criar, Gerir e Proteger Acessos para Sysadmins em 2026

Linux · Segurança · Users · Sudo · Hardening · PME | ✎ Duarte Spínola | 10 de Julho de 2026

A utilização constante da conta root é uma das práticas mais perigosas em administração de sistemas Linux — cada erro de comando pode destruir o sistema, e cada sessão root é um vector de ataque se comprometida. Este guia cobre a criação e gestão completa de utilizadores em Linux, configuração de sudo com privilégios mínimos, policies de password, expiração de contas, auditoria de acessos, e hardening baseado em NIST SP 800-53. Inclui comandos testados em Ubuntu 24.04, Debian 12, RHEL 9 e CentOS Stream 9, com referências às man pages oficiais e wiki Arch Linux.

Conteúdos

1. O que Está a Acontecer — Porque Nunca Usar Root Directamente

A conta root em Linux tem UID 0 e privilégios absolutos — pode alterar qualquer ficheiro, matar qualquer processo, montar discos, e contornar todas as protecções de permissões. Usar root directamente apresenta três riscos principais:

1. Erros irreversíveis — Um simples typo como rm -rf / * (com espaço acidental) ou dd if=... of=/dev/sda executado como root destrói o sistema sem confirmação. Com sudo, comandos perigosos exigem re-autenticação e ficam registados.

2. Vetor de ataque — Se um atacante compromete uma sessão root via SSH, malware, ou exploração de vulnerabilidade, tem acesso total imediato. O MITRE ATT&CK cataloga a exploração de contas privilegiadas como T1078 (Valid Accounts) (MITRE ATT&CK T1078). Com sudo, o atacante precisa de comprometer primeiro um utilizador normal e depois escalar privilégios — duas barreiras em vez de uma.

3. Falta de auditoria — Múltiplos administradores a usar root tornam impossível saber quem executou quê. O sudo regista cada comando: utilizador, terminal, comando executado, e timestamp (man sudoers).

Em produção, PermitRootLogin deve ser sempre “no” no sshd_config. Se precisa de acesso root, use sudo a partir de uma conta de utilizador confiável. Em PMEs com um único administrador, crie uma conta admin com sudo ALL e desactive o login root directo.

2. Cenários em que a Gestão de Utilizadores é Crítica

Cenário Risco Configuração crítica
Servidor cloud único admin Root exposto à Internet Conta admin + sudo ALL, root login desactivado
Equipa IT com 3-5 admins Necessário audit trail por pessoa Conta individual por admin + sudo com logging
Servidor com aplicações (web, DB) App não deve correr como root Utilizador dedicado por serviço (www-data, postgres)
Acesso de contractors/externos Acesso temporário, revogável Conta com expiração, sudo restrito a comandos específicos
Servidor Ansible/automatização Chave SSH partilhada com root Utilizador ansible + sudo NOPASSWD apenas para playbooks
Compliance (NIS2, ISO 27001) Necessário least privilege + auditoria Sudo por função, logs centralizados, revisão periódica
Servidor de backup/storage Dados sensíveis acessíveis Grupos dedicados, ACLs, sudo apenas para restore
Multi-tenant (hosting compartilhado) Isolamento entre clientes Utilizador por tenant, quotas, sem sudo

3. Anatomia — Ficheiros passwd, shadow, group e sudoers

A gestão de utilizadores em Linux assenta em quatro ficheiros principais. Compreender a sua estrutura é essencial para diagnosticar problemas (man passwd, man shadow).

/etc/passwd — Informação pública de utilizadores

# Formato: username:password:UID:GID:GECOS:home:shell
root:x:0:0:root:/root:/bin/bash
admin:x:1000:1000:Admin User:/home/admin:/bin/bash
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
postgres:x:114:120:PostgreSQL:/var/lib/postgresql:/bin/bash
deploy:x:1001:1001:Deploy User:/home/deploy:/bin/bash

# O "x" na password significa que a hash está em /etc/shadow
# UID 0 = root, UID 1-999 = system users, UID 1000+ = regular users
# Shell /usr/sbin/nologin ou /bin/false = sem acesso a shell

/etc/shadow — Hashes de password (apenas root)

# Formato: username:hash:lastchange:min:max:warn:inactive:expire:reserved
admin:$y$j9T$AbCdEf...:20120:0:90:7:::
deploy:$y$j9T$GhIjKl...:20120:1:365:7:30::

# Campos:
# lastchange: dias desde 1970-01-01 da última mudança
# min: dias mínimos antes de poder mudar password (0 = qualquer altura)
# max: dias até expirar (90 = password expira em 90 dias)
# warn: dias de aviso antes de expirar (7 = avisa 7 dias antes)
# inactive: dias após expirar antes de bloquear (30 = bloqueia após 30 dias)
# expire: data de expiração da conta (vazio = não expira)

/etc/group — Grupos

# Formato: groupname:password:GID:members
root:x:0:
sudo:x:27:admin,deploy
admin:x:1000:
www-data:x:33:admin
docker:x:998:admin,deploy
developers:x:1001:admin,deploy,contractor

/etc/sudoers — Configuração de sudo

# Formato: user host=(runas) command
root ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
admin ALL=(ALL:ALL) ALL
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

# NUNCA editar directamente — usar visudo
# Documentação: https://man7.org/linux/man-pages/man5/sudoers.5.html

4. Criar Utilizadores — useradd, adduser e Alternativas

useradd (standard POSIX)

O useradd é o comando standard disponível em todas as distribuições Linux (man useradd). É low-level e requer flags para criar uma conta completa:

# Criar utilizador com home directory, shell bash, e grupo próprio
sudo useradd -m -s /bin/bash -c "Admin User" admin

# -m: cria home directory (/home/admin)
# -s: shell (/bin/bash, /bin/zsh, /usr/sbin/nologin)
# -c: comentário GECOS (nome completo)
# -G: grupos suplementares (separados por vírgula)

# Criar utilizador com grupos suplementares
sudo useradd -m -s /bin/bash -c "Deploy User" -G sudo,docker deploy

# Criar utilizador de sistema (sem home, sem login)
sudo useradd -r -s /usr/sbin/nologin -c "Backup Service" backup-svc

# -r: utilizador de sistema (UID < 1000)
# Definir password após criar
sudo passwd admin
# New password: ********
# Retype new password: ********

adduser (Ubuntu/Debian — interactivo)

O adduser é um wrapper mais amigável disponível em Ubuntu/Debian. Faz perguntas interactivamente e cria tudo automaticamente:

# Criar utilizador interactivo
sudo adduser admin
# Adding user 'admin' ...
# Adding new group 'admin' (1000) ...
# Adding new user 'admin' (1000) with group 'admin' ...
# Creating home directory '/home/admin' ...
# Copying files from '/etc/skel' ...
# New password: ********
# Retype new password: ********
# Full Name []: Admin User
# Room Number []: 
# Work Phone []: 
# Home Phone []: 
# Other []: 
# Is the information correct? [Y/n] y

# Criar utilizador de sistema
sudo adduser --system --no-create-home --group backup-svc

# Adicionar a grupo sudo
sudo adduser admin sudo

Criar utilizador com chave SSH pré-configurada

# Criar utilizador + configurar chave SSH + adicionar a sudo
sudo useradd -m -s /bin/bash -c "Contractor" -G sudo contractor

# Criar directório .ssh
sudo mkdir -p /home/contractor/.ssh
sudo cp /tmp/contractor_pubkey.pub /home/contractor/.ssh/authorized_keys
sudo chmod 700 /home/contractor/.ssh
sudo chmod 600 /home/contractor/.ssh/authorized_keys
sudo chown -R contractor:contractor /home/contractor/.ssh

# Definir expiração da conta (30 dias)
sudo chage -E $(date -d "+30 days" +%Y-%m-%d) contractor

5. Gerir Utilizadores — Modificar, Bloquear, Remover

Modificar utilizadores (usermod)

# Adicionar a grupos suplementares
sudo usermod -aG docker,www-data admin
# -aG = append to groups (NUNCA usar -G sem -a, substitui todos os grupos)

# Mudar shell
sudo usermod -s /bin/zsh admin

# Mudar home directory
sudo usermod -d /home/newadmin -m admin
# -m = move conteúdo do home antigo

# Mudar nome de utilizador
sudo usermod -l newname oldname

# Mudar UID
sudo usermod -u 1500 admin

# Bloquear conta (adicionar ! à password)
sudo usermod -L admin
# Desbloquear
sudo usermod -U admin

# Expirar conta numa data específica
sudo usermod -e 2026-12-31 contractor
# Documentação: https://man7.org/linux/man-pages/man8/usermod.8.html

Bloquear e desbloquear contas

# Bloquear password (não pode fazer login por password)
sudo passwd -l admin
# Unlock
sudo passwd -u admin

# Expirar password imediatamente (forçar mudança no próximo login)
sudo passwd -e admin
# O utilizador verá: "You are required to change your password immediately"

# Bloquear completamente (password + chave SSH)
sudo usermod -L admin
sudo usermod -s /usr/sbin/nologin admin

Remover utilizadores (userdel)

# Remover utilizador mas manter home directory
sudo userdel admin

# Remover utilizador E home directory
sudo userdel -r admin
# -r = remove home e mail spool

# Verificar que foi removido
grep admin /etc/passwd
# Deve retornar vazio
# Documentação: https://man7.org/linux/man-pages/man8/userdel.8.html

Antes de remover um utilizador, verifique se tem processos a correr. Use ps -u admin e lsof -u admin. Se tiver processos activos, termine-os primeiro com sudo pkill -u admin ou sudo kill <PID>.

6. Configurar Sudo — Privilégios Mínimos para PME

Configuração base de sudo

O sudo permite executar comandos como root (ou outro utilizador) com auditoria completa. A configuração é feita no ficheiro /etc/sudoers ou em ficheiros individuais em /etc/sudoers.d/ (man sudoers, man visudo).

# NUNCA editar /etc/sudoers directamente — usar visudo
sudo visudo

# Configuração base recomendada para PME:

# Defaults de segurança
Defaults        env_reset
Defaults        mail_badpass
Defaults        insults
Defaults        log_input,log_output
Defaults        use_pty
Defaults        timestamp_timeout=15

# Root e grupo sudo têm acesso total
root    ALL=(ALL:ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

# Admin tem acesso total com password
admin   ALL=(ALL:ALL) ALL

# Deploy: apenas reiniciar serviços, sem password (CI/CD)
deploy  ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, \
        /usr/bin/systemctl restart postgresql, \
        /usr/bin/systemctl reload nginx

Ficheiros individuais em /etc/sudoers.d/

Para PMEs com múltiplas contas, é melhor usar ficheiros individuais por utilizador ou função:

# /etc/sudoers.d/admin — acesso total
admin ALL=(ALL:ALL) ALL

# /etc/sudoers.d/deploy — apenas serviços específicos
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, \
      /usr/bin/systemctl restart postgresql

# /etc/sudoers.d/contractor — apenas leitura de logs
contractor ALL=(root) NOPASSWD: /usr/bin/journalctl, \
           /usr/bin/tail /var/log/nginx/*.log, \
           /usr/bin/cat /var/log/nginx/*.log

# /etc/sudoers.d/ansible — apenas Ansible
ansible ALL=(ALL) NOPASSWD: ALL
# Restringir depois com command= no authorized_keys

# Validar sintaxe depois de cada alteração
sudo visudo -c
# Se houver erro de sintaxe, o sudo pode ficar inacessível

Configurar timeout de sudo

# Por defeito, sudo pede password a cada 15 minutos
# Reduzir para 5 minutos (mais seguro)
sudo visudo
# Adicionar:
Defaults timestamp_timeout=5

# Ou por utilizador:
Defaults:admin timestamp_timeout=10
Defaults:contractor timestamp_timeout=2

Auditar comandos sudo

# Ver histórico de comandos sudo
sudo journalctl -t sudo
# ou
sudo grep sudo /var/log/auth.log

# Output típico:
# Jul 10 14:23:01 servidor sudo: admin : TTY=pts/0 ; PWD=/home/admin ; COMMAND=/usr/bin/apt update
# Jul 10 14:25:30 servidor sudo: deploy : TTY=pts/1 ; PWD=/opt/app ; COMMAND=/usr/bin/systemctl restart nginx

# Activar log de input/output (comando completo + output)
# Em /etc/sudoers:
Defaults log_input,log_output
# Os logs ficam em /var/log/sudo-io/

7. Grupos — Criação, Gestão e Organização por Função

Criar e gerir grupos

# Criar grupo
sudo groupadd developers
sudo groupadd -g 2000 backup-ops
# -g = GID específico

# Adicionar utilizadores a grupos
sudo usermod -aG developers admin
sudo usermod -aG developers,backup-ops deploy

# Remover de grupo (não há comando directo — usar gpasswd)
sudo gpasswd -d admin developers

# Listar membros de um grupo
getent group developers
# developers:x:1001:admin,deploy

# Listar grupos de um utilizador
groups admin
# admin : admin sudo docker developers

# Ver todos os grupos
cat /etc/group

Organização por função para PME

Grupo Função Sudo
sudo Administradores full ALL=(ALL:ALL) ALL
developers Developers com acesso a repositórios Apenas reiniciar app services
backup-ops Operadores de backup Apenas comandos de backup/restore
docker Acesso ao daemon Docker Sem sudo (grupo docker é suficiente)
www-data Servidor web (Apache/Nginx) Sem sudo (service account)
contractors Acesso temporário externo Apenas leitura de logs, contas com expiração

8. Policies de Password e Expiração de Contas

Configurar expiração com chage

# Ver política actual de um utilizador
sudo chage -l admin
# Last password change: Jul 10, 2026
# Password expires: never
# Password inactive: never
# Account expires: never
# Minimum number of days between password change: 0
# Maximum number of days between password change: 99999
# Number of days of warning before password expires: 7

# Definir password expira em 90 dias, avisa 7 antes
sudo chage -M 90 -W 7 admin

# Definir password mínima de 1 dia (não pode mudar 2x no mesmo dia)
sudo chage -m 1 admin

# Expirar conta numa data específica
sudo chage -E 2026-12-31 contractor

# Bloquear conta após 30 dias de inactividade pós-expiração
sudo chage -I 30 admin

# Forçar mudança de password no próximo login
sudo chage -d 0 admin

Política global de passwords (login.defs)

# /etc/login.defs — políticas globais
PASS_MAX_DAYS   90
PASS_MIN_DAYS   1
PASS_WARN_AGE   7
LOGIN_RETRIES   3
LOGIN_TIMEOUT   30
UMASK           027

# Estas definições aplicam-se a novos utilizadores
# Para alterar existentes, usar chage individualmente

Qualidade de password com PAM (pwquality)

# Instalar (Ubuntu/Debian)
sudo apt install libpam-pwquality

# Configurar: /etc/security/pwquality.conf
minlen = 12          # mínimo 12 caracteres
minclass = 3         # pelo menos 3 classes (upper, lower, digit, special)
maxrepeat = 3        # máximo 3 caracteres repetidos consecutivos
dcredit = -1         # pelo menos 1 dígito (-1 = obrigatório)
ucredit = -1         # pelo menos 1 maiúscula
lcredit = -1         # pelo menos 1 minúscula
ocredit = -1         # pelo menos 1 especial
difok = 5            # 5 caracteres diferentes da password anterior
enforce_for_root     # aplicar também a root

9. Hardening de Acesso — NIST SP 800-53 para Gestão de Contas

O NIST SP 800-53 inclui controlos específicos para gestão de contas e acesso privilegiado (NIST SP 800-53 Rev 5):

Controlo NIST Descrição Configuração Linux
AC-2 Gestão de contas Inventário de contas, revisão periódica, contas inactivas desactivadas
AC-2(2) Contas privilegiadas sudo com privilégios mínimos, auditoria de comandos
AC-2(3) Desactivar contas inactivas chage -I, script de revisão de últimos logins
AC-5 Segregation of duties Grupos por função (developers, backup-ops, contractors)
AC-6 Least privilege Sudo restrito a comandos específicos por utilizador
AC-6(5) Privilégios sem acesso total NOPASSWD apenas para CI/CD, command= no authorized_keys
IA-5(1) Política de passwords pwquality.conf, PASS_MAX_DAYS=90, chage
AU-2 Auditoria de eventos sudo logs, log_input/log_output, /var/log/auth.log
AU-6 Revisão de auditoria Script de revisão semanal de logins sudo

Script de hardening automático

#!/bin/bash
# hardening-users.sh — Hardening de gestão de utilizadores para PME
# Testado em Ubuntu 24.04, Debian 12, RHEL 9 (2026-07)
set -euo pipefail

# 1. Desactivar login root por SSH (se sshd_config editável)
if [ -f /etc/ssh/sshd_config ]; then
    sed -i 's/^#*PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config
    sshd -t && systemctl restart sshd || true
fi

# 2. Configurar políticas globais de password
sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS   90/' /etc/login.defs
sed -i 's/^PASS_MIN_DAYS.*/PASS_MIN_DAYS   1/' /etc/login.defs
sed -i 's/^PASS_WARN_AGE.*/PASS_WARN_AGE   7/' /etc/login.defs

# 3. Aplicar a utilizadores existentes (excepto system users)
for user in $(awk -F: '$3 >= 1000 && $3 != 65534 {print $1}' /etc/passwd); do
    chage -M 90 -m 1 -W 7 "$user"
    echo "  Policy applied: $user"
done

# 4. Verificar contas sem password
nopass=$(awk -F: '($2 == "" || $2 == "!") {print $1}' /etc/shadow | grep -v '^$')
if [ -n "$nopass" ]; then
    echo "WARNING: Accounts without password: $nopass"
fi

# 5. Verificar contas inactivas (>90 dias sem login)
echo "Checking inactive accounts..."
for user in $(awk -F: '$3 >= 1000 && $3 != 65534 {print $1}' /etc/passwd); do
    last_login=$(lastlog -u "$user" | awk 'NR==2 {print $2, $3, $4}')
    if [ "$last_login" == "Never logged" ] || [ "$last_login" == "**Never" ]; then
        echo "  INACTIVE: $user (never logged in)"
    fi
done

echo "Hardening complete. Review the output above."

10. Diagnóstico e Auditoria — Quem Está Ligado e O Que Fez

Verificar quem está ligado

# Utilizadores ligados agora
w
# 14:23:01 up 5 days,  2 users,  load average: 0.05, 0.03, 0.01
# USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
# admin    pts/0     09:15    1:23   0.50s  0.10s -bash
# deploy   pts/1     14:20    0.00s  0.05s  0.01s sshd: deploy@pts/1

# Quem está ligado (simples)
who

# Histórico de logins
last -n 20
# admin    pts/0   192.168.1.50   Thu Jul 10 09:15   still logged in
# deploy   pts/1   10.0.0.5       Thu Jul 10 14:20   still logged in

# Logins falhados
sudo lastb -n 20

# Último login de cada utilizador
lastlog | grep -v "Never logged"

Auditar comandos sudo

# Todos os comandos sudo nas últimas 24h
sudo journalctl -t sudo --since "24 hours ago"

# Sudo de um utilizador específico
sudo journalctl -t sudo | grep "admin"

# Sudo num período específico
sudo journalctl -t sudo --since "2026-07-10 09:00" --until "2026-07-10 17:00"

# Em Ubuntu/Debian
sudo grep "sudo" /var/log/auth.log | grep "COMMAND"

Verificar contas sem password ou com shell perigoso

# Contas com shell /bin/bash (podem fazer login)
grep '/bin/bash' /etc/passwd

# Contas sem password definida
sudo awk -F: '($2 == "" || $2 == "*" || $2 == "!") {print $1}' /etc/shadow

# Contas com UID 0 (devia ser apenas root)
awk -F: '$3 == 0 {print $1}' /etc/passwd
# Se aparecer algo além de "root", é um problema de segurança grave

# Verificar contas expiradas ou bloqueadas
sudo chage -l admin | grep -E "expires|inactive"

Script de auditoria semanal

#!/bin/bash
# audit-users.sh — Relatório semanal de auditoria de utilizadores
echo "=== AUDITORIA DE UTILIZADORES ==="
echo "Data: $(date)"
echo

echo "--- Contas com UID 0 (deve ser apenas root) ---"
awk -F: '$3 == 0 {print "  " $1}' /etc/passwd

echo
echo "--- Contas com login shell ---"
grep -E '/bin/(bash|zsh|sh|fish)' /etc/passwd | awk -F: '{print "  " $1 " (" $6 ")"}'

echo
echo "--- Contas sem password ---"
sudo awk -F: '($2 == "" || $2 == "!") {print "  " $1}' /etc/shadow

echo
echo "--- Últimos 10 logins ---"
last -n 10 | head -11

echo
echo "--- Logins falhados (últimos 10) ---"
sudo lastb -n 10 2>/dev/null | head -11

echo
echo "--- Comandos sudo (últimas 24h) ---"
sudo journalctl -t sudo --since "24 hours ago" 2>/dev/null | tail -20

echo
echo "--- Contas expiradas ou a expirar em 7 dias ---"
for user in $(awk -F: '$3 >= 1000 && $3 != 65534 {print $1}' /etc/passwd); do
    expire=$(sudo chage -l "$user" 2>/dev/null | grep "Account expires" | awk -F: '{print $2}' | xargs)
    if [ "$expire" != "never" ] && [ -n "$expire" ]; then
        echo "  $user expires: $expire"
    fi
done

11. FAQ para Sysadmins

1. Devo desactivar completamente a conta root?

Não — a conta root não pode ser removida (UID 0 é necessário para o sistema). O que se faz é desactivar o login root: PermitRootLogin no no SSH, e sudo passwd -l root para bloquear a password. Mantém acesso via sudo su - se necessário.

2. adduser ou useradd?

adduser em Ubuntu/Debian (interactivo, cria tudo automaticamente). useradd em RHEL/CentOS ou scripts (low-level, mais controlo). Ambos resultam no mesmo — a diferença é a experiência (man useradd, Arch Wiki — Users and groups).

3. NOPASSWD no sudo é seguro?

Em CI/CD (Ansible, GitHub Actions) é necessário. Restrinja a comandos específicos: NOPASSWD: /usr/bin/systemctl restart nginx. Nunca use NOPASSWD: ALL excepto para Ansible com chave SSH restrita por command= e from=.

4. Com que frequência devo mudar a minha password?

90 dias é o standard NIST/enterprise. Mas mais importante que a rotação é a qualidade — uma password forte de 12+ caracteres com 3 classes é mais segura que uma fraca mudada mensalmente. Considere chaves SSH + MFA para acesso administrativo (NIST SP 800-63B).

5. Como revogar acesso rapidamente?

# Bloquear imediatamente
sudo usermod -L username          # bloquear password
sudo usermod -s /usr/sbin/nologin username  # sem shell
sudo pkill -u username            # terminar sessões activas

# Remover acesso sudo
sudo rm /etc/sudoers.d/username

# Remover chaves SSH
sudo rm /home/username/.ssh/authorized_keys

6. O que é um utilizador de sistema e quando usar?

Utilizadores de sistema (UID < 1000, criados com useradd -r) são para serviços — não têm home directory nem shell. Use para qualquer serviço que precise de correr sob identidade própria: backup-svc, monitoring, nginx. Nunca corra serviços como root.

7. Como partilhar ficheiros entre utilizadores com permissões correctas?

Crie um grupo partilhado, adicione os utilizadores, e use permissões de grupo: sudo groupadd team && sudo usermod -aG team admin deploy && sudo chown -R :team /opt/shared && sudo chmod 2770 /opt/shared. O bit 2 (setgid) garante que novos ficheiros herdam o grupo.

8. Como ver se um utilizador tem acesso sudo?

# Listar privilégios sudo de um utilizador
sudo -l -U admin
# User admin may run the following commands on servidor:
#     (ALL:ALL) ALL

# Ver todos os ficheiros em /etc/sudoers.d/
sudo ls -la /etc/sudoers.d/
sudo grep -r "" /etc/sudoers.d/

12. Erros Comuns e Resoluções Rápidas

Sintoma Causa provável Comando de resolução
useradd: command not found Em sistemas minimalistas sudo apt install passwd ou sudo dnf install shadow-utils
user is not in the sudoers file Utilizador não tem sudo configurado sudo usermod -aG sudo username (Ubuntu) ou visudo
visudo: syntax error near line X Erro de sintaxe no sudoers visudo mostra o erro — corrigir e guardar
Permission denied (publickey) após criar user Permissões .ssh erradas chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
usermod: user is currently used by process Utilizador tem processos activos sudo pkill -u username e tentar novamente
sudo: no tty present and no askpass program Sudo sem terminal (cron, script) Usar NOPASSWD: no sudoers para esse comando
Cannot lock /etc/passwd Outro processo a editar utilizadores Esperar, ou sudo rm /etc/passwd.lock
Your account has expired chage -E passou sudo chage -E -1 username (remover expiração)
You must change your password immediately passwd -e foi executado Mudar password: passwd
Authentication token manipulation error PAM não consegue ler/escrever shadow Verificar permissões /etc/shadow (640, root:shadow)
adduser: The user already exists UID ou nome já em uso grep username /etc/passwd para verificar
sudo: unable to resolve host Hostname não resolve em /etc/hosts Adicionar hostname a /etc/hosts: 127.0.1.1 hostname

Artigos Relacionados

Voltar ao Índice

Este artigo foi útil?

Duarte Spínola

Comentários estão desativos.