RDP Monster

Come cambiare utente su Ubuntu: su, sudo ed escalation dei privilegi

Come cambiare utente su Ubuntu: su, sudo ed escalation dei privilegi

Introduzione

Gestire più account utente e passare dall'uno all'altro è un aspetto fondamentale dell'amministrazione Linux. Ubuntu, la distribuzione Linux più diffusa al mondo, offre diversi metodi per cambiare utente attivo, ciascuno con casi d'uso e implicazioni di sicurezza specifiche. Capire questi meccanismi consente flussi multi-utente efficienti, operazioni amministrative sicure e una corretta gestione dei privilegi.

Questa guida completa esamina ogni metodo per cambiare utente su Ubuntu, dai semplici approcci da riga di comando alle tecniche avanzate di escalation dei privilegi. Che tu gestisca sistemi condivisi, attività amministrative o ambienti multi-tenant, padroneggiare il cambio utente è essenziale per usare Ubuntu con sicurezza.

 

Comprendere la gestione utenti di Ubuntu

Tipi di account utente

Utenti regolari: Account standard con privilegi limitati, accesso ai file ristretto e incapacità di modificare la configurazione di sistema.

Utente root: Superutente con accesso illimitato a tutte le risorse di sistema, in grado di eseguire qualsiasi operazione, incluse quelle pericolose.

Utenti di sistema: Account speciali per servizi di sistema (www-data per server web, mysql per database).

Utenti sudo: Account regolari con privilegi di superutente delegati tramite la configurazione di sudo.

Escalation di privilegi

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.

Principi: Eseguire operazioni con i privilegi minimi necessari; ridurre al minimo il tempo con accesso elevato; verificare tutte le operazioni privilegiate.

 

Comando su (Switch User)

Sintassi di base

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).

Cambio utente con nuovo ambiente

su - john


The hyphen (-) loads the complete environment of the target user, including:

  • Variabile HOME che punta alla home directory dell'utente

  • Variabile PATH con i path dei comandi dell'utente

  • File di configurazione della shell (.bashrc, .profile)

  • Directory di lavoro spostata nella home dell'utente

Best Practice: Always use su - to ensure proper environment configuration.


Passare all'utente root

su -


Passa all'utente root con l'ambiente completo di root. Richiede la password di root.

Opzioni del 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): Specifica la shell per la sessione

su - john -s /bin/zsh

 

-m (Preserve environment): Keep current environment while switching

su -m john

Comando sudo (Superuser Do)

Sintassi di base
sudo [OPTIONS] COMMAND


Eseguire comandi con privilegi elevati

sudo apt-get update # Update package lists (requires root)
sudo systemctl restart ssh # Restart SSH service
sudo reboot # Reboot system


Eseguire una shell root interattiva

sudo -i

Avvia una shell root interattiva senza accedere come root.

Eseguire comando come altro utente

sudo -u username command

Esegue il comando con i privilegi dell'utente specificato (non solo root).


Opzioni del 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: differenze chiave

Caratteristica su su –
Ambiente Mantiene l'ambiente della shell padre Carica l'ambiente dell'utente di destinazione
Variabile HOME Resta nella home dell'utente originale Passa alla home dell'utente di destinazione
Variabile PATH Può includere i path dell'utente originale Contiene i path standard dell'utente di destinazione
Config Shell Non carica .bashrc o .profile Carica ~/.bashrc, ~/.profile
Directory di lavoro Resta nella directory corrente Passa alla home dell'utente
Raccomandato Raramente; possibile confusione Sempre per il cambio utente
Livello di rischio Maggiore (ambienti misti) Minore (ambiente pulito)

 

Differenza di esempio

# Con su (BAD)
$ su john
Password:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory
# Con su - (GOOD)
$ su - john
Password:
$ echo $HOME
/home/john # Correct home directory
$ pwd
/home/john # Correct directory

Passare all'utente root

Con su

su - Password: (enter root password)
root@hostname:~#

Con sudo

sudo -i
[sudo] password for john: (enter john's password)
root@hostname:~#

Differenze tra su – e sudo -i

Aspetto su – sudo -i
Password richiesta Password root Password dell'utente corrente
Logging Non loggato Registrato da sudo
Tracciato di audit Minimo Tracciato di audit completo
Sicurezza Inferiore (richiede la condivisione della password di root) Superiore (responsabilità individuale)
Configurazione aziendale tipica Sconsigliato Recommended

Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.

 

Eseguire comandi come un altro utente

Eseguire un singolo comando

sudo -u apache /usr/bin/apache2ctl restart
su - testuser -c "python /home/testuser/script.py"

Esecuzione di più comandi

sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"

Esecuzione di comandi preservando la directory corrente

sudo -u john pwd # Prints john's home (working directory changed)
sudo -u john -C pwd # Prints current directory (with -C flag)

Cambiare la password utente

Cambiare la propria password

passwd

Richiede la password attuale, poi la nuova password (due volte per conferma).

Cambiare la password di un altro utente (richiede root)

sudo passwd john

Nessuna password attuale richiesta; richiede la nuova password (autorità root).

Imposta criterio di scadenza

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

Permessi utente e gruppi

Visualizza gruppi utenti

groups john # Show groups current user belongs to
groups # Show own groups
id john # Detailed UID, GID, groups

Aggiungi utente al gruppo

sudo usermod -aG groupname username

 

Example: Add user to sudo group

sudo usermod -aG sudo john

Rimuovi utente dal gruppo

sudo deluser username groupname

Crea nuovo utente

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser

Options:

  • -m: Create home directory

  • -s: Specify shell

  • -G: Assegna ai gruppi

 

Esempi pratici

Example 1: Administrative Task with Escalation di privilegi

#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get update
sudo apt-get upgrade -y
echo "System update complete"

Esempio 2: Esecuzione di attività del server 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

Esempio 3: Manutenzione del database

# 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;"

Esempio 4: Gestione utenti in batch

#!/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

Considerazioni sulla sicurezza

Sicurezza delle password

Password root: Mantieni sicura; non condividere mai con individui non affidabili

Configurazione sudo: Delega privilegi specifici invece dell'accesso root completo

Scadenza password: Imponi modifiche periodiche delle password

# 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

Audit e logging

All sudo commands are logged:

sudo grep COMMAND /var/log/auth.log

 

View detailed sudo history:

sudo journalctl _COMM=sudo

Restricting Escalation di privilegi

Configure sudoers file safely:

sudo visudo # Always use visudo for editing sudoers

 

Configurazione sudoers di esempio (limiting what john can run):

john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
john ALL=(ALL) /usr/bin/apt-get

Timeout di sessione

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

Perché l'infrastruttura remota usa il cambio utente

L'infrastruttura RDP e SSH richiede frequentemente:

  • Più utenti amministrativi con diversi livelli di privilegio

  • Account di servizio per processi automatizzati

  • Tracciati di audit per la conformità (logging sudo)

  • Elevazione dei privilegi per attività amministrative

Gestione dell'infrastruttura tramite RDP.Monster

Managing Ubuntu systems remotely requires robust, secure access:

Accesso SSH per esecuzione comandi

  • Esecuzione remota di comandi di cambio utente

  • Amministrazione automatizzata tramite script

  • Controllo completo sulla gestione utenti

Supporto a più account utente

  • Crea utenti amministrativi

  • Delega i privilegi in modo appropriato

  • Mantieni i tracciati di audit

Amministrazione remota sicura

  • Crittografia SSH per tutte le operazioni di cambio utente

  • Autenticazione basata su chiavi per accesso programmatico

  • Logging e monitoraggio completi

Distribuisci l'infrastruttura Ubuntu VPS con capacità di gestione sicura degli utenti tramite RDP.Monster

 

Conclusione

Il cambio utente e l'elevazione dei privilegi sono competenze fondamentali di amministrazione Ubuntu. Comprendere le differenze tra su, sudo e gestione delle password consente un'amministrazione efficace dei sistemi multiutente, mantenendo la sicurezza tramite una corretta delega dei privilegi e tracciati di audit.

Le best practice moderne di Ubuntu favoriscono fortemente sudo rispetto a su per l'elevazione dei privilegi, consentendo responsabilità e logging completo riducendo al minimo la condivisione della password di root. Una corretta configurazione di sudoers che delega privilegi specifici fornisce un eccellente equilibrio di sicurezza tra usabilità e accesso 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.

Hosting VPS Ubuntu potente

Vivi pieno controllo e prestazioni fulminee con i nostri VPS Linux. Perfetti per ospitare applicazioni, gestire server e ottimizzare il tuo workflow.

Dedicated Servers

Server dedicati ad alte prestazioni

Hai bisogno di massimo controllo e potenza? I nostri server dedicati offrono prestazioni senza pari per i carichi più impegnativi.

Domande frequenti

Meglio su o sudo?

Nei sistemi moderni è preferibile sudo.

Garantisce responsabilità, richiede password individuali e fornisce audit trail completi.

Perché il mio comando su non funziona?

Potresti non conoscere la password dell'utente di destinazione.

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

Posso cambiare utente senza password?

Sì, con sudo: configura sudoers con NOPASSWD.

Con su serve sempre la password dell'utente di destinazione.

Qual è la differenza tra su - e su --login?

Sono identiche: entrambe creano login shell con caricamento completo dell'ambiente.

Quanto dura il privilegio sudo?

Di default 15 minuti. Personalizzabile nella configurazione sudoers.

Posso eseguire più comandi come un altro utente?

Sì: sudo bash -c "comando1 && comando2 && comando3"

Come vedo i miei permessi sudo?

Esegui sudo -l per mostrare i comandi consentiti.

Perché il mio PATH cambia quando cambio utente?

Usa su - per caricare l'ambiente completo dell'utente di destinazione, compreso il PATH corretto.

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.

Usiamo i cookie !

Utilizziamo i cookie per migliorare la tua esperienza di navigazione, proporre annunci o contenuti personalizzati e analizzare il nostro traffico. Cliccando su «Accetta», acconsenti al nostro uso dei cookie.