15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
02.01.2026
7 +3

Como Alterar Usuário no Linux: O Guia Completo

Linux é um sistema operacional multi-utilizador por design, e gerir identidades de utilizadores é uma das competências mais fundamentais que qualquer administrador de sistemas precisa de dominar. Quer esteja a gerir um ambiente de VPS Hosting, a configurar um servidor web ou a resolver problemas de permissões de ficheiros após uma implementação, compreender como mudar de utilizador em Linux é essencial.

A frase “mudar de utilizador” em Linux cobre várias operações distintas, cada uma com as suas próprias ferramentas, riscos e melhores práticas:

  • Mudar para outra conta na shell (por exemplo, de john para root) para uma sessão interativa
  • Executar um único comando como um utilizador diferente sem mudar completamente de sessão
  • Mudar qual utilizador um serviço ou processo executa — crítico para endurecimento de segurança
  • Mudar a propriedade de ficheiros e diretórios — essencial após migrações, restauros ou implementações
  • Modificar atributos de conta de utilizador — renomear utilizadores, mudar UIDs ou ajustar membros de grupos

Este guia cobre todos estes cenários em profundidade, explicando quando usar cada abordagem, como fazê-lo com segurança e quais erros evitar — para que possa gerir utilizadores Linux com confiança sem quebrar permissões, serviços ou acesso.

Índice

  1. Mudar para Outro Utilizador (Shell Interativa)
  2. Executar um Único Comando como Outro Utilizador
  3. Mudar o Utilizador que um Serviço Executa (systemd)
  4. Mudar a Propriedade de Ficheiros com chown
  5. Confirmar a Sua Identidade Atual
  6. Modificar Atributos de Conta de Utilizador
  7. Folha de Referência Rápida

Mudar para Outro Utilizador (Shell Interativa)

Quando precisa de uma sessão de terminal interativa completa como outro utilizador — para administração de sistemas, teste de comportamento de aplicação sob uma conta diferente ou acesso a uma conta de serviço — Linux fornece duas ferramentas principais: su e sudo.

Usar su (Mudar Utilizador)

O comando su substitui a sua identidade de utilizador atual por outra:

su - username

A flag - (também escrita como -l ou --login) é importante: carrega o ambiente de login completo do utilizador alvo, incluindo o seu diretório home, PATH, perfil de shell e variáveis de ambiente. Sem a flag -, herda muito do seu ambiente atual, o que pode causar comportamento subtil e confuso — especialmente ao executar scripts ou serviços.

Para mudar diretamente para root:

su -

> Nota de segurança: Em muitas distribuições Linux modernas, a conta root tem a palavra-passe desativada por padrão (particularmente em sistemas baseados em Ubuntu). Nestes casos, su para root falhará, e sudo é a abordagem correta.

Usar sudo -i (Preferido para Shells Root/Admin)

sudo -i

Isto dá-lhe uma shell de login root equivalente a su -, mas autentica usando os seus próprios privilégios sudo em vez de exigir a palavra-passe root. Esta é a abordagem recomendada na maioria das distribuições modernas porque:

  • Evita a necessidade de partilhar ou conhecer a palavra-passe root
  • Todas as ações são registadas através da trilha de auditoria sudo
  • Respeita a sua configuração e restrições sudoers

Mudar para Outro Utilizador com uma Shell de Login via sudo

sudo -iu username

Isto combina -i (shell de login) e -u (utilizador alvo), dando-lhe um ambiente de login limpo como o utilizador especificado — sem precisar da palavra-passe desse utilizador.

Executar um Único Comando como Outro Utilizador

Frequentemente não precisa de uma sessão interativa completa — apenas precisa de executar um comando com uma identidade diferente. Este é o padrão mais comum e seguro para escalação de privilégios.

Usar sudo -u

sudo -u username whoami
sudo -u postgres psql

O segundo exemplo é extremamente comum em administração de bases de dados — mudar para o utilizador de sistema postgres para aceder a PostgreSQL sem autenticação de palavra-passe.

Executar um Comando com um Ambiente de Login Limpo

sudo -iu username command_here

Isto garante que o comando executa com o ambiente completo do utilizador alvo, não as variáveis da sua sessão atual.

Executar um Comando como Root

sudo systemctl restart nginx

Este é o padrão para tarefas administrativas: executar um único comando privilegiado sem abrir uma shell root.

Mudar o Utilizador que um Serviço Executa (systemd)

Em praticamente todas as distribuições Linux modernas, systemd gere serviços. Para segurança, cada serviço deve executar sob uma conta de utilizador dedicada e não privilegiada em vez de root. Executar serviços como root é um risco de segurança significativo — se o serviço for comprometido, o atacante ganha acesso root a todo o sistema.

Isto é especialmente importante em Servidores Dedicados e ambientes VPS de produção onde múltiplos serviços podem estar a executar simultaneamente.

Verificar a Configuração Atual do Serviço

systemctl cat myservice.service

Procure pelas diretivas User= e Group= na secção [Service]:

[Service]
User=www-data
Group=www-data

Sobrepor o Utilizador do Serviço (Método Seguro)

Em vez de editar o ficheiro de unidade original (que pode ser sobrescrito em atualizações de pacotes), use systemctl edit para criar uma sobreposição drop-in:

sudo systemctl edit myservice.service

Isto abre um editor onde adiciona:

[Service]
User=myuser
Group=mygroup

Guarde o ficheiro, depois aplique as alterações:

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Verificar que o Serviço Está a Executar como o Utilizador Correto

systemctl status myservice.service
ps -eo user,pid,cmd | grep myservice

Inspecionar o Utilizador de Qualquer Processo em Execução

ps -eo user,pid,cmd | grep nginx
ps -p <PID> -o user,group,cmd

> Importante: Linux não permite que mude o utilizador de um processo já em execução no local. Deve reiniciar o processo (ou configurar o gestor de serviços para o lançar sob o utilizador correto) para que a alteração tenha efeito.

Mudar a Propriedade de Ficheiros com chown

A propriedade de ficheiros é uma parte central do modelo de permissões de Linux. Após migrações, implementações, cópias de segurança ou restauros, a propriedade pode acabar atribuída ao utilizador errado — causando erros de permissão negada, aplicações web quebradas ou dados inacessíveis. O comando chown é a sua ferramenta principal para corrigir isto.

Esta é uma tarefa comum ao configurar ambientes de Alojamento Web Partilhado ou implementar aplicações web num VPS.

Mudar o Proprietário de um Ficheiro

sudo chown username file.txt

Mudar Proprietário e Grupo

sudo chown username:groupname file.txt

Mudança de Propriedade Recursiva (Use com Cuidado)

sudo chown -R username:groupname /var/www/site

A flag -R aplica a alteração recursivamente a todos os ficheiros e subdiretórios. Use isto com cuidado — aplicá-lo ao caminho errado (por exemplo, / ou /etc) pode quebrar todo o seu sistema.

Preservar Ligações Simbólicas

sudo chown -h username:groupname symlink

Sem -h, chown segue ligações simbólicas e muda a propriedade do ficheiro alvo, não da ligação simbólica em si. Use -h quando especificamente quer mudar a propriedade da ligação simbólica.

Pré-visualizar Propriedade Antes de Fazer Alterações

Para árvores de diretórios grandes, sempre pré-visualize antes de aplicar um chown recursivo:

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Isto mostra o proprietário e grupo atual para os dois primeiros níveis da árvore de diretórios, deixando-o confirmar o âmbito da alteração antes de se comprometer.

Confirmar a Sua Identidade Atual

Antes de fazer alterações, sempre verifique quem é e em que contexto está a operar. Isto previne alterações acidentais feitas sob a conta errada.

Verificar o Seu Utilizador Atual

whoami

Obter Informações de Identidade Completa (Utilizador, Grupos, UIDs)

id

Exemplo de saída:

uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),1001(docker)

Ver Quem Está Ligado ao Sistema

who
w

Verificar o Utilizador Original Ao Usar sudo

Quando escala com sudo, duas variáveis de ambiente são relevantes:

echo $USER        # The current effective user (root)
echo $SUDO_USER   # The original user who invoked sudo (e.g., alice)

Esta distinção importa em scripts — $SUDO_USER diz-lhe quem realmente executou o comando.

Modificar Atributos de Conta de Utilizador

Às vezes “mudar de utilizador” significa modificar a conta em si: renomeá-la, mudar o seu UID ou ajustar membros de grupos. Estas são alterações permanentes em todo o sistema que podem afetar logins, permissões de ficheiros e acesso a serviços.

> Melhor prática: Antes de fazer modificações de conta, garanta que o utilizador está desligado e nenhum processo está a executar sob essa conta.

Renomear um Utilizador (Mudar Nome de Utilizador)

sudo usermod -l newname oldname

Isto muda o nome de login mas não renomeia automaticamente o diretório home. Para também mover e renomear o diretório home:

sudo usermod -d /home/newname -m newname

Se o utilizador tem um grupo primário com o mesmo nome que o seu nome de utilizador antigo (que é o padrão na maioria das distribuições), atualize também o nome do grupo:

sudo groupmod -n newname oldname

Mudar o UID de um Utilizador

sudo usermod -u 2001 username

> Crítico: Após mudar um UID, todos os ficheiros anteriormente propriedade do UID antigo aparecerão como propriedade de um ID numérico desconhecido. Deve corrigir isto imediatamente:

sudo find / -user oldUID -exec chown -h username {} ;

Substitua oldUID pelo UID numérico anterior. Este comando procura em todo o sistema de ficheiros ficheiros com o UID antigo e reatribui-os ao novo nome de utilizador.

Adicionar um Utilizador a um Grupo

O caso de uso mais comum é conceder acesso sudo a um utilizador:

Debian/Ubuntu:

sudo usermod -aG sudo username

RHEL / AlmaLinux / Rocky Linux:

sudo usermod -aG wheel username

A flag -a é crítica — anexa o utilizador ao grupo sem removê-lo de grupos existentes. Omitir -a substituirá todas as membros de grupos apenas pelo grupo especificado.

Verificar Membros de Grupo

id username

Folha de Referência Rápida

Aqui está uma referência consolidada para todas as operações de mudança de utilizador e gestão cobertas neste guia:

TarefaComando
Mudar para outro utilizador (shell de login)su - username
Mudar para outro utilizador via sudosudo -iu username
Abrir uma shell rootsudo -i
Executar um comando como outro utilizadorsudo -u username command
Executar um comando como postgressudo -u postgres psql
Verificar utilizador atualwhoami
Verificar identidade completa e gruposid
Verificar invocador sudo originalecho $SUDO_USER
Mudar proprietário de ficheirosudo chown username file
Mudar proprietário e grupo de ficheirosudo chown username:group file
Mudança de propriedade recursivasudo chown -R username:group /path
Pré-visualizar propriedade de diretóriofind /path -maxdepth 2 -printf '%u:%g %pn'
Mudar utilizador de serviço (systemd)sudo systemctl edit myservice.service
Recarregar systemd após alteraçõessudo systemctl daemon-reload
Verificar utilizador de processo`ps -eo user,pid,cmdgrep service`
Renomear um utilizadorsudo usermod -l newname oldname
Mover diretório homesudo usermod -d /home/newname -m newname
Mudar UID###PPT_NOTR_89
15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar