SU

Section: Comandi utente (1)
Updated: 29/04/2018
Page Index
 

NOME

su - cambia ID utente o diventa amministratore  

SINOSSI

su [opzioni] [-] [nome [ args ]]
 

DESCRIZIONE

The su command is used to become another user during a login session. Invoked without a username, su defaults to becoming the superuser. The - option may be used to provide an environment similar to what the user would expect had the user logged in directly. The -c option may be used to treat the next argument as a command by most shells.

Options are recognized everywhere in the argument list. You can use the -- argument to stop option parsing. The - option is special: it is also recognized after --, but has to be placed before username.

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.

Se l'opzione --login è utilizzata, le variabili d'ambiente $TZ, $HZ e $MAIL sono impostate in accordo alle opzioni ENV_TZ, ENV_HZ, MAIL_DIR e MAIL_FILE specificate nel file /etc/login.defs (vedi sotto).

Se l'opzione --login è utilizzata, altre variabili d'ambiente potrebbero essere impostate dal file ENVIRON_FILE (vedi sotto).
 

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 (testo)

Se definito, o il percorso completo di un file che contiene l'elenco di nomi di device (uno per riga) oppure un elenco di nomi di device separati da «:». L'accesso come root verrà permesso solo attraverso questi device.

Se non definito, root potrà accedere da qualsiasi device.

Il nome di device deve essere specificato senza il prefisso /dev.

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_HZ (testo)

Se impostato viene utilizzato per definire il valore della variabile d'ambiente HZ al login dell'utente. Il valore deve essere preceduto da HZ=. Un valore comune per Linux è HZ=100.

ENVIRON_FILE (testo)

Se questo file esiste ed è leggibile, l'ambiente di login viene letto da lì. Ogni riga deve essere nella forma nome=valore.

Le righe che iniziano con «#» sono trattate come commenti e ignorate.

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.

ENV_TZ (testo)

Se impostato viene usato per definire la variabile d'ambiente TZ al login dell'utente. Il valore può essere il nome di una «timezone» preceduta da TZ= (ad esempio TZ=CST6CDT), o il percorso completo di un file che contenga la specifica della «timezone» (ad esempio /etc/tzname).

Se viene specificato il percorso completo di un file che però non esiste o non può essere letto, allora viene utilizzato il valore predefinito TZ=CST6CDT.

LOGIN_STRING (testo)

Il testo da utilizzare per richiedere la password. Il valore predefinito è «Password: » o una sua traduzione. Se si imposta questa variabile allora il testo non verrà tradotto.

Se il testo contiene %s, questo verrà sostituito dal nome dell'utente.

MAIL_CHECK_ENAB (testo)

Abilita la verifica e stampa a video dello stato della casella di posta al momento dell'accesso al sistema.

Andrebbe disabilitato se i file di avvio della shell effettuano già questo controllo («mailx -e» o equivalente).

MAIL_DIR (testo)

La directory di spool per la posta. Questa è necessaria per manipolare la casella di posta quando il corrispondente account utente viene modificato o cancellato. Se non è specificata viene utilizzato un valore impostato al momento della compilazione.

MAIL_FILE (testo)

Imposta la posizione delle caselle di posta degli utenti relative alla loro directory home.

Le variabili MAIL_DIR e MAIL_FILE vengono utilizzate da useradd, usermod e userdel per creare, spostare e cancellare le caselle di posta dell'utente.

Se MAIL_CHECK_ENAB è impostata a yes allora sono anche utilizzate per impostare la variabile d'ambiente MAIL.

QUOTAS_ENAB (booleano)

Abilita l'impostazione di limiti di risorsa definiti in /etc/limits e ulimit, umask e livello di «nice» in base al campo gecos del passwd dell'utente.

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

SU_WHEEL_ONLY (booleano)

Se yes, l'utente deve essere elencato come membro del primo gruppo con gid 0 in /etc/group (chiamato root in molti sistemi Linux) perché sia possibile usare su verso account con uid 0. Se il gruppo non esiste o è vuoto, nessuno potrà utilizzare su verso uid 0.

SYSLOG_SU_ENAB (booleano)

Abilita la tracciatura su «syslog» dell'attività di su, oltre a quella sul file «sulog».

USERGROUPS_ENAB (booleano)

Abilita l'impostazione dei bit di gruppo di umask in modo che siano gli stessi dei bit del proprietario (esempio: 022 -> 002, 077 -> 007) per utenti non root a condizione che uid e gid siano identici e che il nome utente sia lo stesso del gruppo primario.

Se impostato a yes, userdel cancellerà il gruppo dell'utente se non contiene altri membri, e useradd creerà automaticamente un gruppo con lo stesso nome dell'utente.

 

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
"  

VEDERE ANCHE

login(1), login.defs(5), sg(1), sh(1).


 

Index

NOME
SINOSSI
DESCRIZIONE
OPZIONI
AVVISI/CAVEAT
CONFIGURAZIONE
FILE
VALORI RESTITUITI
VEDERE ANCHE