SU(1)

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.

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