Su (Unix): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ianezz (discussione | contributi)
m corsivo per i termini stranieri. Altre piccole correzioni
m ho tolto la traduzione errata di "switch user"
 
(37 versioni intermedie di 22 utenti non mostrate)
Riga 1:
{{titoloTitolo errato|suminuscolo}}
'''su''' (daabbreviazione dalla [[lingua inglese]] di '''''s'''witchubstitute '''u'''ser o '', 's'''ubstitutesostituisci utente'''u'''ser) è un [[istruzione (informatica)|comando]] dei [[Sistema operativo|sistemi operativi]] [[Unix]] e, [[Unix-like]] e Linux che permette di avviare una ''[[Shell (informatica)|shell testuale]]'' assumendo l'identità di un altro utente del sistema. La ''shell'' avviata è quella predefinita per l'utente di cui si assume l'identità, ed è possibile passarle parametri per farle ad esempio eseguire direttamente un comando, che a questo punto sarà eseguito con la nuova identità.
 
''<kbd>su''</kbd> viene tipicamente usato da utenti non privilegiati per avviare una ''shell'' nei panni di [[Root (utente)|root]], e da ''root'' per avviare una ''shell'' nei panni di utenti ordinari.
 
Normalmente ''<kbd>su''</kbd> richiede di effettuare un'[[autenticazione]] con le credenziali dell'utente di cui si vuole assumere l'identità. Ciò non è richiesto quando ''<kbd>su''</kbd> viene eseguito dall'utente ''root''.
 
Su alcuni sistemi (non [[GNU/Linux]]<ref>{{cita web
|url =http https://www.gnu.org/software/coreutils/manual/html_node/su-invocation.html#index-MIT-AI-lab-2101
|titolo = Why GNU su does not support the ‘wheel’ group
|accesso = 17-05-2008
|lingua = en
|opera = GNU Coreutils manual
|opera=GNU Coreutils manual}}</ref>, anche se tecnicamente possibile<ref>{{cita web
|urlmorto = sì
|urlarchivio = https://web.archive.org/web/20130807001725/http://www.gnu.org/software/coreutils/manual/html_node/su-invocation.html#index-MIT-AI-lab-2101
|dataarchivio = 7 agosto 2013
|opera=GNU Coreutils manual}}</ref>, anche se tecnicamente possibile<ref>{{cita web
|url=http://www.faqs.org/docs/securing/chap5sec43.html
|titolo=Blocking; su to root, by one and sundry
|accesso=17-05-2008
|lingua=en
|opera=Securing and Optimizing Linux: RedHatRed Hat Edition - A Hands on Guide
}}</ref>) solo gli utenti che appartengono al gruppo speciale ''wheel'' possono assumere l'identità di ''root'' tramite il comando <kbd>su</kbd>.
 
In [[systemd]] il comando <kbd>su</kbd> è stato sostituito da <kbd>machinectl shell</kbd>.<ref>{{cita web|url=https://tlhp.cf/lennart-poettering-su/|titolo=Lennart Poettering merged “su” command replacement into systemd: Test Drive on Fedora Rawhide|data=28 agosto 2015|urlmorto=sì|urlarchivio=https://web.archive.org/web/20150904232722/https://tlhp.cf/lennart-poettering-su/|dataarchivio=4 settembre 2015}}</ref>
==Uso==
La sintassi tipica di ''su'' è la seguente:
su [-] [''utente'' [''arg1'' ..] ]
Il parametro ''utente'' specifica il nome dell'utente di cui si desidera assumere l'identità. Se non specificato si assume sia ''root''.
 
== Sintassi ==
Specificando un trattino "<tt>-</tt>" si indica di avviare una ''shell di login'', che offre un ambiente sostanzialmente identico a quello che si otterrebbe effettuando la procedura di ''[[login]]'' testuale nei panni dell'utente di cui si assume l'identità (ad esempio la [[directory]] corrente diventa quella dell'utente di cui si assume l'identità). Non specificandolo si ottiene invece un ambiente che in parte deriva da quello corrente.
La sintassi tipica di ''<kbd>su''</kbd> è la seguente:
su [-] [''utente'' [''arg1'' ..] ] [-]
Il parametro facoltativo ''utente'' specifica il nome dell'utente di cui si desidera assumere l'identità. Se non specificato si assume sia ''root''.
 
Specificando un trattino "<ttkbd>-</ttkbd>" si indica di avviare una ''shell di login'', che offre un ambiente sostanzialmente identico a quello che si otterrebbe effettuando la procedura di ''[[login]]'' testuale nei panni dell'utente di cui si assume l'identità (ad esempio la [[directory corrente]] correnteviene diventaimpostata quellaalla [[home directory]] dell'utente di cui si assume l'identità). Non specificandolo si ottiene invece un ambiente che in parte deriva da quello corrente.
I parametri facoltativi ''arg'' sono passati direttamente come parametri alla ''shell'' avviata con l'identità del nuovo utente; molte ''shell'' (come [[Bash]] o la [[Korn shell]]) supportano l'opzione "<tt>-c ''riga_di_comando''</tt>", con la quale è possibile specificare una riga di ''comando'' da far eseguire, di fatto permettendo l'avvio diretto di altri programmi. Ad esempio "<tt>su alice -c 'ls -l'"</tt> avvia una nuova ''shell'' con l'identità dell'utente <tt>alice</tt>, e le passa i parametri "<tt>-c 'ls -l'</tt>", che tipicamente fanno si che la ''shell'' esegua il comando "<tt>ls -l</tt>".
 
I parametri facoltativi ''arg'' sono passati direttamente come parametri alla ''shell'' avviata con l'identità del nuovo utente; molte ''shell'' (come [[Bash]] o la [[Korn shell]]) supportano l'opzione "<ttkbd>-c ''riga_di_comando''</ttkbd>", con la quale è possibile specificare unaloro rigaun di ''comando'' da far eseguire, di fatto permettendo l'avvio diretto di altri programmi. Ad esempio "<ttkbd>su alice -c 'ls -l'"</ttkbd> avvia una nuova ''shell'' con l'identità dell'utente <ttkbd>alice</ttkbd>, e le passa i parametri "<ttkbd>-c 'ls -l'</ttkbd>", che tipicamente fanno si che la ''shell'' esegua il comando "<ttkbd>ls -l</ttkbd>".
==Esempi==
 
== Esempi ==
Un utente non privilegiato può avviare una ''shell'' come ''root'':
su -
 
Un utente non privilegiato può eseguire direttamentespecificare un comando da far eseguire alla ''shell'' come utente ''root'':
su root -c "mkdir /opt/esempio"
 
L'utente ''root'' avvia una ''shell'' nei panni dell'utente non privilegiato ''alice'':
Un utente non privilegiato può eseguire direttamente un comando come ''root'':
su - alice
su root -c "mkdir /opt/esempio"
 
L'utente ''root'' assume l'identità dell'utente non privilegiato ''alice'':
su alice
 
== Note ==
L'utente ''root'' avvia una ''shell'' nei panni dell'utente non privilegiato ''alice'':
su - alice
 
==Note==
<references/>
 
== Voci correlate ==
* [[sudo]] – Esegue comandi con l'identità di altri utenti.
 
{{Comandi Unix}}
{{Portale|Informatica}}
{{Portale|sicurezza informatica}}
 
[[Categoria:Unix]]
[[Categoria:Comandi Unix/Linux]]
 
[[de:Su (Unix)]]
[[en:Su (Unix)]]
[[es:Su (Unix)]]
[[fr:Su (Unix)]]
[[ja:Su (Unix)]]
[[pl:Su (Unix)]]
[[pt:Su]]
[[ru:Su]]
[[sr:Su (Unix)]]