Como mudar de utilizador no Ubuntu: su, sudo e escalada de privilégios
- 9 de novembro de 2025
- 22:15
- Tutoriais

Introdução
Gerir várias contas de utilizador e alternar entre elas é um aspecto fundamental da administração Linux. O Ubuntu, a distribuição Linux mais popular do mundo, oferece vários métodos para mudar o utilizador ativo, cada um com casos de uso e implicações de segurança próprias. Dominar estes mecanismos permite fluxos multi-utilizador eficientes, operações administrativas seguras e uma gestão correta de privilégios.
Este guia completo aborda todos os métodos para mudar de utilizador no Ubuntu, desde abordagens básicas de linha de comandos a técnicas avançadas de escalonamento de privilégios. Quer gira sistemas partilhados, tarefas administrativas ou ambientes multi-tenant, dominar a troca de utilizador é essencial para o bom uso do Ubuntu.
Compreender a gestão de utilizadores no Ubuntu
Tipos de conta de usuário
Usuários regulares: Contas padrão com privilégios limitados, acesso restrito a arquivos e incapacidade de modificar a configuração do sistema.
Usuário root: Superusuário com acesso irrestrito a todos os recursos do sistema, capaz de qualquer operação, incluindo as perigosas.
Usuários do sistema: Contas especiais para serviços do sistema (www-data para servidores web, mysql para bancos de dados).
Usuários sudo: Contas regulares com privilégios de superusuário delegados por meio da configuração do sudo.
Escalonamento de privilégios
Why Escalate?: Most administrative tasks require elevated privileges. Rather than logging in as root (dangerous), Ubuntu uses privilege escalation to grant specific elevated permissions temporarily.
Princípios: Executar operações com privilégios mínimos necessários; minimizar o tempo com acesso elevado; auditar todas as operações privilegiadas.
Comando su (Switch User)
Sintaxe básica
su [OPTIONS] [USERNAME]
Switching to Another Usersu john
Prompts for the target user’s password, then switches to that account. The environment remains the user’s original environment (not recommended).Trocar de usuário com novo ambiente
su - john
The hyphen (-) loads the complete environment of the target user, including:
-
Variável HOME apontando para o diretório home do usuário
-
Variável PATH com os caminhos de comando do usuário
-
Arquivos de configuração do shell (.bashrc, .profile)
-
Diretório de trabalho alterado para o home do usuário
Best Practice: Always use su - to ensure proper environment configuration.
Mudar para o utilizador root
su -
Troca para o usuário root com o ambiente completo do root. Solicita a senha do root.
Opções do comando su
-c (Command): Execute single command as another user without full session
su - john -c "ls -la /home/john"-l (Login): Identical to using hyphen; creates login shell
su --login john
-s (Shell): Especificar shell para a sessão
su - john -s /bin/zsh
-m (Preserve environment): Keep current environment while switching
su -m johnComando sudo (Superuser Do)
Sintaxe básica
sudo [OPTIONS] COMMAND
Executar comando com privilégios elevados
sudo apt-get update # Update package lists (requires root)sudo systemctl restart ssh # Restart SSH servicesudo reboot # Reboot system
Executar shell root interativo
sudo -i
Inicia um shell root interativo sem fazer login como root.
Executar comando como outro usuário
sudo -u username commandExecuta o comando com os privilégios do usuário especificado (não apenas root).
Opções do comando sudo
-l (List): Display allowed commands
sudo -l
-k (Invalidate): Clear sudo credentials (requires password on next use)
sudo -k
-p (Prompt): Custom password prompt
sudo -p "Enter admin password: " apt-get update-v (Validate): Extend sudo timeoutsudo -v
-H (Home): Set HOME to target user’s home
sudo -H -u username commandsu – vs su: principais diferenças
| Recurso | su | su – |
|---|---|---|
| Ambiente | Mantém o ambiente do shell pai | Carrega o ambiente do usuário alvo |
| Variável HOME | Permanece no home do usuário original | Muda para o home do usuário alvo |
| Variável PATH | Pode incluir os caminhos do usuário original | Contém os caminhos padrão do usuário alvo |
| Config do Shell | Não carrega .bashrc nem .profile | Carrega ~/.bashrc, ~/.profile |
| Diretório de trabalho | Permanece no diretório atual | Muda para o home do usuário |
| Recomendado | Raramente; possível confusão | Sempre para troca de usuário |
| Nível de risco | Maior (ambientes mistos) | Menor (ambiente limpo) |
Diferença de exemplo
# Usando su (BAD)
$ su johnPassword:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory# Usando su - (GOOD)
$ su - johnPassword:
$ echo $HOME
/home/john # Correct home directory$ pwd
/home/john # Correct directoryMudar para o utilizador root
Usando su
su -
Password: (enter root password)
root@hostname:~#Usando sudo
sudo -i[sudo] password for john: (enter john's password)
root@hostname:~#Diferenças entre su – e sudo -i
| Aspectoo | su – | sudo -i |
|---|---|---|
| Senha necessária | Senha root | Senha do usuário atual |
| Registro | Não registrado | Registrado pelo sudo |
| Trilha de auditoria | Mínimo | Trilha de auditoria completa |
| Segurança | Menor (requer compartilhar a senha root) | Maior (responsabilidade individual) |
| Configuração empresarial típica | Desencorajado | Recommended |
Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.
Executar comandos como outro utilizador
Executar comando único
sudo -u apache /usr/bin/apache2ctl restartsu - testuser -c "python /home/testuser/script.py"
Executar múltiplos comandos
sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"
Executar comandos preservando o diretório atual
sudo -u john pwd # Prints john's home (working directory changed)sudo -u john -C pwd # Prints current directory (with -C flag)Alterar a palavra-passe do utilizador
Alterar a própria senha
passwdSolicita a senha atual e depois a nova senha (duas vezes para confirmação).
Alterar a senha de outro usuário (root necessário)
sudo passwd john
Não requer senha atual; solicita a nova senha (autoridade root).
Definir política de expiração
sudo chage -l john # View password aging infosudo chage -M 90 john # Force password change every 90 dayssudo chage -d 0 john # Force password change on next login
Permissões e grupos de utilizador
Ver grupos de usuários
groups john # Show groups current user belongs togroups # Show own groupsid john # Detailed UID, GID, groupsAdicionar usuário ao grupo
sudo usermod -aG groupname username
Example: Add user to sudo group
sudo usermod -aG sudo john
Remover usuário do grupo
sudo deluser username groupname
Criar novo usuário
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
Options:
-
-m: Create home directory -
-s: Specify shell -
-G: Atribuir a grupos
Exemplos práticos
Example 1: Administrative Task with Escalonamento de privilégios
#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get updatesudo apt-get upgrade -y
echo "System update complete"
Exemplo 2: Executar tarefas de servidor web
# Stop web server as specific service user
sudo -u www-data /opt/webapp/stop.sh# Check web server permissions as www-data
sudo -u www-data ls -la /var/www/htmlExemplo 3: Manutenção de banco de dados
# Backup database as specific user
sudo -u mysql mysqldump -u root -p database_name > backup.sql
# Run database optimization
sudo -u mysql mysql -u root -p -e "OPTIMIZE TABLE table_name;"
Exemplo 4: Gerenciamento de usuários em lote
#!/bin/bash# Create multiple usersfor user in user1 user2 user3; dosudo useradd -m -s /bin/bash "$user"echo "Please set password for $user:"sudo passwd "$user"done# Add all to sudo groupfor user in user1 user2 user3; dosudo usermod -aG sudo "$user"doneConsiderações de segurança
Segurança de senhas
Senha root: Mantenha segura; nunca compartilhe com pessoas não confiáveis
Configuração do sudo: Delegue privilégios específicos em vez de acesso root completo
Validade de senhas: Imponha alterações periódicas de senha
# Configure password agingsudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warningAuditoria e registro
All sudo commands are logged:
sudo grep COMMAND /var/log/auth.log
View detailed sudo history:
sudo journalctl _COMM=sudoRestricting Escalonamento de privilégios
Configure sudoers file safely:
sudo visudo # Always use visudo for editing sudoers
Exemplo de configuração sudoers (limiting what john can run):
john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginxjohn ALL=(ALL) /usr/bin/apt-getTempo limite de sessão
# Set sudo timeoutsudo -v # Extend timeoutsudo -k # Invalidate sudo credentialsPorque é que a infraestrutura remota utiliza a troca de utilizador
A infraestrutura RDP e SSH frequentemente requer:
-
Múltiplos usuários administrativos com diferentes níveis de privilégio
-
Contas de serviço para processos automatizados
-
Trilhas de auditoria para conformidade (registro sudo)
-
Escalação de privilégios para tarefas administrativas
Gerenciamento de infraestrutura via RDP.Monster
Managing Ubuntu systems remotely requires robust, secure access:
Acesso SSH para execução de comandos
-
Executar comandos de troca de usuário remotamente
-
Administração automatizada por meio de scripts
-
Controle total sobre o gerenciamento de usuários
Suporte a múltiplas contas de usuário
-
Criar usuários administrativos
-
Delegar privilégios apropriadamente
-
Manter trilhas de auditoria
Administração remota segura
-
Criptografia SSH para todas as operações de troca de usuário
-
Autenticação baseada em chave para acesso programático
-
Registro e monitoramento abrangentes
Implante infraestrutura Ubuntu VPS com recursos seguros de gerenciamento de usuários via RDP.Monster
Conclusão
A troca de usuários e a escalação de privilégios são habilidades fundamentais de administração do Ubuntu. Compreender as diferenças entre su, sudo e gerenciamento de senhas permite uma administração eficaz de sistemas multiusuário, mantendo a segurança por meio de delegação adequada de privilégios e trilhas de auditoria.
As melhores práticas modernas do Ubuntu favorecem fortemente o sudo em vez do su para escalação de privilégios, permitindo responsabilização e registro abrangente, minimizando o compartilhamento da senha root. A configuração adequada do sudoers delegando privilégios específicos oferece um excelente equilíbrio de segurança entre usabilidade e acesso control.
Managing complex Ubuntu infrastructure requiring sophisticated user management and secure administrative access? RDP.Monster provides SSH-based Ubuntu VPS solutions enabling seamless user management and privilege escalation across your infrastructure. Deploy professionally-managed Ubuntu systems today.
Alojamento VPS Ubuntu poderoso
Experimente controlo total e desempenho fulgurante com os nossos VPS Linux. Perfeito para alojar aplicações, gerir servidores e otimizar o seu workflow.
Servidores dedicados de alto desempenho
Precisa de controlo e potência máximos? Os nossos servidores dedicados oferecem desempenho incomparável para tarefas exigentes.
Perguntas frequentes
Devo usar su ou sudo?
Permite responsabilização, exige palavras-passe individuais e fornece trilhas de auditoria completas.
Porque é que o meu comando su não funciona?
Try sudo -u username instead if you have sudo privileges.
Posso mudar de utilizador sem palavra-passe?
No su precisa sempre da palavra-passe do utilizador-alvo.




