Su (Unix): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ianezz (discussione | contributi)
Nessun oggetto della modifica
m ho tolto la traduzione errata di "switch user"
 
(47 versioni intermedie di 23 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 [[SitemaSistema 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 anche''shell'' possibileavviata indicareè traquella ipredefinita per l'utente di cui si assume l'identità, ed è possibile passarle parametri unper comandofarle daad faresempio eseguire alladirettamente nuovaun ''shell''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 dall'utenteda ''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''] [-c ''comando'']
* ''utente'' specifica il nome dell'utente che si desidera impersonare. Se omesso si assume sia ''root''.
* Specificando il segno meno "<tt>-</tt>" si indica di avviare una ''shell di login'', che offre un ambiente sostanzialmente identico a quello che si otterrebbe effettuando il [[login]] testuale nei panni dell'utente di cui si assume l'identità (ad esempio la [[directory]] corrente diventa quella dell'utente impersonato). Non specificandolo si ottiene invece un ambiente che in parte deriva da quello corrente.
* Con l'opzione <tt>-c</tt> è possibile specificare una riga di ''comando'' da far eseguire alla nuova ''shell'', di fatto permettendo l'avvio diretto di altri programmi.
 
==Esempi Sintassi ==
La sintassi tipica di ''<kbd>su''</kbd> è la seguente:
su [-] [''utente''] [-c ''comandoarg1'' …] ] [-]
*Il parametro facoltativo ''utente'' specifica il nome dell'utente chedi cui si desidera impersonareassumere l'identità. Se omessonon specificato si assume sia ''root''.
 
* Specificando il segnoun menotrattino "<ttkbd>-</ttkbd>" si indica di avviare una ''shell di login'', che offre un ambiente sostanzialmente identico a quello che si otterrebbe effettuando illa 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 impersonatodi 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 "<kbd>-c ''riga_di_comando''</kbd>", con la quale è possibile specificare loro un comando da eseguire, di fatto permettendo l'avvio diretto di altri programmi. Ad esempio "<kbd>su alice -c 'ls -l'"</kbd> avvia una nuova ''shell'' con l'identità dell'utente <kbd>alice</kbd>, e le passa i parametri "<kbd>-c 'ls -l'</kbd>", che tipicamente fanno sì che la ''shell'' esegua il comando "<kbd>ls -l</kbd>".
 
== 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 suroot -c "mkdir /opt/esempio"
 
L'utente ''root'' avvia una ''shell'' nei panni dell'utente non privilegiato ''alice'':
su - alice
 
L'utente ''root'' assume l'identità dell'utente non privilegiato ''alice'':
==Note==
su alice
{{references}}
 
==Voci correlateNote ==
{{<references}}/>
* [[sudo]] (esegue comandi con l'identità di altri utenti)
 
== Voci correlate ==
{{Portale|Informatica}}
* [[sudo]] (esegue– Esegue comandi con l'identità di altri utenti).
 
[[Categoria:{{Comandi Unix]]}}
{{Portale|sicurezza informatica}}
[[Categoria:Comandi Unix/Linux]]
 
[[deCategoria:Su (Unix)]]
[[enCategoria:SuComandi (Unix)]]
[[es:Su (Unix)]]
[[fr:Su (Unix)]]
[[ja:Su (Unix)]]
[[pl:Su (Unix)]]
[[pt:Su]]
[[ru:Su]]
[[sr:Su (Unix)]]