NOME
su − cambia ID utente o diventa amministratore
SINOSSI
su [opzioni] [nome] |
DESCRIZIONE
su permette di diventare un altro utente durante una sessione di login. Se nessun nome utente viene specificato, su acquisice i privilegi di amministratore. L'opzione − può essere usata per fornire un ambiente simile a quello che l'utente troverebbe se effettuasse il login direttamente.
Dopo il nome utente, è possibile specificare argomenti aggiuntivi da passare alla shell di login dell'utente. In particolare, molti interpreti di comando adottano la convenzione per cui l'opzione −c seguita da un argomento fa sì che quest'ultimo sia considerato un comando. Il comando viene eseguito dalla shell specificata in /etc/passwd per l'utente di destinazione.
Si può utilizzare −− per separare le opzioni di su dagli argomenti passati alla shell.
All'utente viene quindi chiesta la password, se necessario. Una password errata viene segnalata da un messaggio d'errore. Viene effettuato il log di tutti i tentativi, siano essi riusciti o meno, al fine di rilevare ogni abuso del sistema.
Le variabili d'ambiente in uso vengono passate alla nuova shell, eccetto il valore di $PATH che viene impostato a /bin:/usr/bin per gli utenti qualsiasi e a /sbin:/bin:/usr/sbin:/usr/bin per l'amministratore. Questa impostazione è controllata dalle definizioni ENV_PATH ed ENV_SUPATH in /etc/login.defs.
Un sottosistema di login è indicato dalla presenza del carattere «*» all'inizio della shell di login. La directory home impostata sarà utilizzata come root di un nuovo file system al quale l'utente accede.
OPZIONI
Il comando su accetta le seguenti opzioni:
−c, −−command COMANDO
Specifica un comando che verrà invocato dalla shell tramite la sua opzione −c.
The executed command will have no controlling terminal. This option cannot be used to execute interactive programs which need a controlling TTY.
−, −l, −−login
Fornisce un ambiente simile a quello che un utente si attende quando effettua direttamente il login.
When − is used, it must be specified before any username. For portability it is recommended to use it as last option, before any username. The other forms (−l and −−login) do not have this restriction.
−s, −−shell SHELL
La shell che verrà invocata.
La shell invocata viene scelta da (in ordine di priorità):
La shell specificata con −−shell.
Se viene usato −−preserve−environment, la shell specificata dalla variabile d'ambiente $SHELL.
La shell indicata nel file /etc/passwd per l'utente target.
/bin/sh se gli altri metodi falliscono.
Se l'utente target ha una shell con restrizioni (cioè se la sua shell presente in /etc/passwd non è presente in /etc/shells), allora l'opzione −−shell e la variabile d'ambiente $SHELL non vengono prese in considerazione a meno che su sia invocato da root.
−m, −p, −−preserve−environment
Mantiene l'ambiente attuale, fatta eccezione per:
$PATH
reimpostato in accordo alle opzioni ENV_PATH o ENV_SUPATH del file /etc/login.defs (vedi sotto);
$IFS
reimpostato a «<space><tab><newline>» se era impostato.
Se l'utente target ha una shell con restrizioni, questa opzione non ha effetto (a meno che su sia invocato da root).
Notare che il comportamento predefinito per l'ambiente è il seguente:
Le variabili d'ambiente $HOME, $SHELL, $USER, $LOGNAME, $PATH e $IFS sono reimpostate.
Se l'opzione −−login non è usata, l'ambiente è copiato con l'eccezione delle variabili elencate sopra.
Se l'opzione −−login è utilizzata, le variabili $TERM, $COLORTERM, $DISPLAY e $XAUTHORITY sono copiate se risultano impostate.
Altre variabili d'ambiente potrebbero essere impostate da moduli PAM.
AVVISI/CAVEAT
Questa versione di su ha molte opzioni di compilazione; solo una parte di esse potrebbe essere in uso su un determinato sistema.
CONFIGURAZIONE
Le seguenti variabili di configurazione in /etc/login.defs cambiano il comportamento di questo strumento:
CONSOLE_GROUPS (testo)
Elenco di gruppi da aggiungere ai gruppi supplementari dell'utente quando questi accede dalla console (come determinato dalla impostazione CONSOLE). Il valore predefinito è nullo.
Usare con cautela − è possibile che gli utenti ottengano l'accesso permanente a questi gruppi anche se non accedono dalla console.
DEFAULT_HOME (booleano)
Indica se permettere l'accesso al sistema anche se non si può accedere alla directory home. Il valore predefinito è no.
Se impostato a yes, l'utente accederà alla directory root (/) nel caso che non sia possibile accedere alla propria directory home.
ENV_PATH (testo)
If set, it will be used to define the PATH environment variable when a regular user login. The value is a colon separated list of paths (for example /bin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/bin:/usr/bin.
ENV_SUPATH (testo)
If set, it will be used to define the PATH environment variable when the superuser login. The value is a colon separated list of paths (for example /sbin:/bin:/usr/sbin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/sbin:/bin:/usr/sbin:/usr/bin.
SULOG_FILE (testo)
Se definito, tutta l'attività di «su» viene tracciata in questo file.
SU_NAME (testo)
Se definito è il nome del comando da mostrare quando si esegue «su −». Ad esempio, se lo di definisce come «su» allora «ps» mostrerà che il comando è «−su». Se non definito, «ps» mostrerà il nome della shell invocata, come «−sh».
SYSLOG_SU_ENAB (booleano)
Abilita la tracciatura su «syslog» dell'attività di su, oltre a quella sul file «sulog».
FILE
/etc/passwd
Informazioni sugli account utente.
/etc/shadow
Informazioni sicure sugli account utente.
/etc/login.defs
Configurazione del pacchetto password shadow
VALORI RESTITUITI
In caso di successo, il valore restituito da su è quello del comando da esso eseguito.
Se questo comando è terminato da un segnale, su restituisce il numero del segnale più 128.
Se «su» deve terminare il comando (perché gli è stato chiesto di terminare ma il comando non è terminato in tempo), su restituisce 255.
Alcuni dei codici d'uscita di su sono indipendenti dal comando eseguito:
0
successo (solo −−help)
1
Errore di sistema o di autenticazione
126
Il comando richiesto non è stato trovato
127
Il comando richiesto non può essere eseguito
"