RDP Monster

Como mudar de utilizador no Ubuntu: su, sudo e escalada de privilégios

Como mudar de utilizador no Ubuntu: su, sudo e escalada de privilégios

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 User
su 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 john

Comando 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 service
sudo 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 command

Executa 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 timeout
sudo -v

 

-H (Home): Set HOME to target user’s home

sudo -H -u username command

su – 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 john
Password:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory
# Usando su - (GOOD)
$ su - john
Password:
$ echo $HOME
/home/john # Correct home directory
$ pwd
/home/john # Correct directory

Mudar 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 restart
su - 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

passwd

Solicita 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 info
sudo chage -M 90 john # Force password change every 90 days
sudo 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 to
groups # Show own groups
id john # Detailed UID, GID, groups

Adicionar 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 update
sudo 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/html

Exemplo 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 users
for user in user1 user2 user3; do
sudo useradd -m -s /bin/bash "$user"
echo "Please set password for $user:"
sudo passwd "$user"
done
# Add all to sudo group
for user in user1 user2 user3; do
sudo usermod -aG sudo "$user"
done

Consideraçõ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 aging
sudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warning

Auditoria e registro

All sudo commands are logged:

sudo grep COMMAND /var/log/auth.log

 

View detailed sudo history:

sudo journalctl _COMM=sudo

Restricting 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 nginx
john ALL=(ALL) /usr/bin/apt-get

Tempo limite de sessão

# Set sudo timeout
sudo -v # Extend timeout
sudo -k # Invalidate sudo credentials

Porque é 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.

Dedicated Servers

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?

Em sistemas modernos, sudo é a opção preferida.

Permite responsabilização, exige palavras-passe individuais e fornece trilhas de auditoria completas.

Porque é que o meu comando su não funciona?

Pode não saber a palavra-passe do utilizador-alvo.

Try sudo -u username instead if you have sudo privileges.

Posso mudar de utilizador sem palavra-passe?

Sim, com sudo: configure o sudoers com NOPASSWD.

No su precisa sempre da palavra-passe do utilizador-alvo.

Qual a diferença entre su - e su --login?

São idênticas: ambas criam login shells com carregamento completo de ambiente.

Quanto tempo dura o privilégio sudo?

Por defeito, 15 minutos. Pode ser personalizado na configuração sudoers.

Posso executar vários comandos como outro utilizador?

Sim: sudo bash -c "comando1 && comando2 && comando3"

Como vejo as minhas permissões sudo?

Execute sudo -l para ver os comandos permitidos.

Porque é que o meu PATH muda quando troco de utilizador?

Use su - para carregar o ambiente completo do utilizador-alvo, incluindo o PATH correto.

Register to our reseller program

Your informations

If you have any question, contact us by clicking here !
Name(Required)
Enter your email address, you must have an account on manager.rdp.monster !

Your company

Enter your website address if you have one
Quickly explain how you're going to sell services to your customers. For example, talk to people on forums.

Usamos cookies !

Usamos cookies para melhorar sua experiência de navegação, exibir anúncios ou conteúdo personalizados e analisar nosso tráfego. Ao clicar em «Aceitar», você consente com nosso uso de cookies.