SINOSSI
- su [opzioni] [nome]
DESCRIZIONE
su
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.
Il comando eseguito non avrà un terminale di controllo. Questa opzione non può essere utilizzata per invocare programmi interattivi che richiedono un TTY di controllo.
-, -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