Como Alterar Usuário no Linux: O Guia Completo
Linux é um sistema operativo 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 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 utilizadores em Linux é essencial.
A frase “mudar de utilizador” em Linux cobre na verdade 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
johnpararoot) 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 o endurecimento de segurança
- Mudar a propriedade de ficheiros e directórios — essencial após migrações, restauros ou implementações
- Modificar atributos da 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 os erros a evitar — para que possa gerir utilizadores Linux com confiança sem quebrar permissões, serviços, ou acesso.
Mudar para Outro Utilizador (Shell Interativo)
Quando precisa de uma sessão de terminal interativo completo como outro utilizador — para administração do sistema, teste do comportamento da aplicação sob uma conta diferente, ou acesso a uma conta de serviço — Linux fornece duas ferramentas principais: su e sudo.
Usando su (Mudar Utilizador)
O comando su substitui a sua identidade de utilizador atual por outra:
su - usernameA 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 senha da conta root está desativada por padrão (particularmente em sistemas baseados em Ubuntu). Nestes casos, su para root falhará, e sudo é a abordagem correta.
Usando sudo -i (Preferido para Shells Root/Admin)
sudo -iIsto dá-lhe um shell de login root equivalente a su -, mas autentica usando os seus próprios privilégios sudo em vez de exigir a senha root. Esta é a abordagem recomendada na maioria das distribuições modernas porque:
- Evita a necessidade de partilhar ou conhecer a senha root
- Todas as ações são registadas via trilho de auditoria sudo
- Respeita a sua configuração e restrições sudoers
Mudar para Outro Utilizador com um Shell de Login via sudo
sudo -iu usernameIsto combina -i (shell de login) e -u (utilizador alvo), dando-lhe um ambiente de login limpo como o utilizador especificado — sem necessidade da senha desse utilizador.
Executar um Comando Único como Outro Utilizador
Frequentemente não precisa de uma sessão interativa completa — apenas precisa executar um comando com uma identidade diferente. Este é o padrão mais comum e seguro para escalação de privilégios.
Usando sudo -u
sudo -u username whoamisudo -u postgres psqlO segundo exemplo é extremamente comum em administração de bases de dados — mudar para o utilizador do sistema postgres para aceder a PostgreSQL sem autenticação por palavra-passe.
Executar um Comando com um Ambiente de Login Limpo
sudo -iu username command_hereIsto garante que o comando é executado com o ambiente completo do utilizador alvo, não com as variáveis da sua sessão atual.
Executar um Comando como Root
sudo systemctl restart nginxEste é o padrão standard para tarefas administrativas: executar um único comando privilegiado sem abrir uma shell root.
Alterar o Utilizador sob o qual um Serviço é Executado (systemd)
Em praticamente todas as distribuições Linux modernas, systemd gere serviços. Por razões de segurança, cada serviço deve ser executado sob uma conta de utilizador dedicada e sem privilégios, em vez de root. Executar serviços como root é um risco de segurança significativo — se o serviço for comprometido, o atacante obtém 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 em execução simultaneamente.
Verificar a Configuração Atual do Serviço
systemctl cat myservice.serviceProcure pelas diretivas User= e Group= na secção [Service]:
[Service]
User=www-data
Group=www-dataSubstituir 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), utilize systemctl edit para criar uma substituição drop-in:
sudo systemctl edit myservice.serviceIsto abre um editor onde adiciona:
[Service]
User=myuser
Group=mygroupGuarde o ficheiro e aplique as alterações:
sudo systemctl daemon-reload
sudo systemctl restart myservice.serviceVerificar se o Serviço está a Ser Executado com o Utilizador Correto
systemctl status myservice.serviceps -eo user,pid,cmd | grep myserviceInspecionar o Utilizador de Qualquer Processo em Execução
ps -eo user,pid,cmd | grep nginxps -p <PID> -o user,group,cmd> Importante: Linux não lhe permite alterar o utilizador de um processo já em execução no local. Deve reiniciar o processo (ou configurar o gestor de serviços para o iniciar sob o utilizador correto) para que a alteração tenha efeito.
Alterar a Propriedade de Ficheiros com chown
A propriedade de ficheiros é uma parte fundamental do modelo de permissões do 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 danificadas 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 ao implementar aplicações web num VPS.
Alterar o Proprietário de um Ficheiro
sudo chown username file.txtAlterar Proprietário e Grupo
sudo chown username:groupname file.txtAlteração Recursiva de Propriedade (Usar com Cuidado)
sudo chown -R username:groupname /var/www/siteA 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 danificar todo o seu sistema.
Preservar Ligações Simbólicas
sudo chown -h username:groupname symlinkSem -h, chown segue ligações simbólicas e altera a propriedade do ficheiro de destino, não da ligação simbólica em si. Use -h quando quiser especificamente alterar 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' | headIsto mostra o proprietário e grupo atual para os dois primeiros níveis da árvore de diretórios, permitindo-lhe confirmar o âmbito da alteração antes de a confirmar.
Confirme Sua Identidade Atual
Antes de fazer alterações, sempre verifique quem você é e em que contexto está operando. Isso evita alterações acidentais feitas sob a conta errada.
Verifique Seu Usuário Atual
whoamiObtenha Informações Completas de Identidade (Usuário, Grupos, UIDs)
idExemplo de saída:
uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),1001(docker)Veja Quem Está Conectado ao Sistema
whowVerifique o Usuário Original Ao Usar sudo
Quando você 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)Essa distinção importa em scripts — $SUDO_USER informa quem realmente executou o comando.
Modificar Atributos da Conta de Utilizador
Por vezes, “alterar utilizador” significa modificar a própria conta: renomeá-la, alterar o seu UID ou ajustar as associações de grupo. 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 na conta, certifique-se de que o utilizador está desconectado e nenhum processo está em execução sob essa conta.
Renomear um Utilizador (Alterar Nome de Utilizador)
sudo usermod -l newname oldnameIsto altera 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 newnameSe o utilizador tem um grupo primário com o mesmo nome que o seu nome de utilizador anterior (que é o padrão na maioria das distribuições), atualize também o nome do grupo:
sudo groupmod -n newname oldnameAlterar o UID de um Utilizador
sudo usermod -u 2001 username> Crítico: Após alterar 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 usernameRHEL / AlmaLinux / Rocky Linux:
sudo usermod -aG wheel usernameA flag -a é crítica — acrescenta o utilizador ao grupo sem o remover dos grupos existentes. Omitir -a substituirá todas as associações de grupo apenas pelo grupo especificado.
Verificar Associação de Grupo
id usernameFolha de Referência Rápida
Aqui está uma referência consolidada para todas as operações de alternância e gerenciamento de utilizadores abordadas neste guia:
| Tarefa | Comando | |
|---|---|---|
| Mudar para outro utilizador (shell de login) | su - username | |
| Mudar para outro utilizador via sudo | sudo -iu username | |
| Abrir uma shell root | sudo -i | |
| Executar um comando como outro utilizador | sudo -u username command | |
| Executar um comando como postgres | sudo -u postgres psql | |
| Verificar utilizador atual | whoami | |
| Verificar identidade completa e grupos | id | |
| Verificar invocador sudo original | echo $SUDO_USER | |
| Alterar proprietário do ficheiro | sudo chown username file | |
| Alterar proprietário e grupo do ficheiro | sudo chown username:group file | |
| Alteração recursiva de propriedade | sudo chown -R username:group /path | |
| Pré-visualizar propriedade do diretório | find /path -maxdepth 2 -printf '%u:%g %pn' | |
| Alterar utilizador de serviço (systemd) | sudo systemctl edit myservice.service | |
| Recarregar systemd após alterações | sudo systemctl daemon-reload | |
| Verificar utilizador do processo | `ps -eo user,pid,cmd | grep service` |
| Renomear um utilizador | sudo usermod -l newname oldname | |
| Mover diretório home | sudo usermod -d /home/newname -m newname | |
| Alterar UID | sudo usermod -u 2001 username | |
| Corrigir propriedade após alteração de UID | sudo find / -user oldUID -exec chown -h username {} ; | |
| Adicionar utilizador ao grupo sudo | sudo usermod -aG sudo username | |
| Verificar associação ao grupo | id username |
Resumo
Gerenciar usuários em Linux não é uma operação única — é uma família de tarefas relacionadas, cada uma com suas próprias ferramentas e implicações:
- Use
sudo -iu usernamepara sessões interativas como outro usuário (preferido em relação asuem sistemas modernos) - Use
sudo -u username commandpara executar comandos individuais com uma identidade diferente - Use
systemctl editpara alterar com segurança qual usuário um serviço systemd executa - Use
chownpara corrigir a propriedade de arquivo após implantações, migrações ou problemas de permissão - Use
usermodpara alterações permanentes de conta — renomeação, alterações de UID e gerenciamento de grupo
Compreender essas distinções ajuda você a evitar erros comuns, como quebrar permissões de serviço, bloquear-se fora de arquivos ou conceder acidentalmente privilégios excessivos.
Se você está executando infraestrutura baseada em Linux — seja um servidor web, um banco de dados ou uma pilha de aplicativos personalizada — ter um ambiente de hospedagem adequadamente configurado torna o gerenciamento de usuários significativamente mais fácil. A AlexHost oferece Painéis de Controle VPS flexíveis e opções de VPS com cPanel que oferecem acesso root completo junto com interfaces de gerenciamento intuitivas, para que você possa aplicar tudo neste guia com confiança.
em todos os serviços de alojamento