Perché si chiama sudo?


30

Perché usiamo sudoper eseguire un comando terminale come amministrativo? Perché no admino qualcos'altro? C'è una ragione per sudo?


19
Leggi sudo lscome "superuser, fare ls" (e non, non è stupido, mnemonici sono importanti per ricordare i comandi) (e no, probabilmente significa " s strega u ser e fare , dato che sui mezzi Cambia utente ma trovo l'ex più bello.; -))
Rmano,

1
superutente molto meglio di admin :) grazie per la risposta.
Mohammad,

2
È quel sudo voodoo che fai. :)
Shadur,

14
Curiosità: in italiano sudosignifica (I) sudore . Mi piace interpretare sudo Xcome sudorazione per la paura di dare il comando sbagliato e cancellare tutti i miei dati . Questo aiuta a tenere a mente che dovresti aggiungere sudodavanti ai comandi solo quando 1) È necessario 2) Sai cosa stai facendo 3) Hai scritto e letto attentamente la riga di comando per evitare errori di battitura (specialmente spazi cattivi che sono difficili da catturare e può portare a risultati imprevisti davvero terribili).
Bakuriu,

2
@Rmano su originariamente significava "superutente", "utente sostitutivo" è arrivato dopo .
Gilles 'SO- smetti di essere malvagio'

Risposte:


32

Da Wikipedia :

sudo è un programma per sistemi operativi simili a Unix che consente agli utenti di eseguire programmi con i privilegi di sicurezza di un altro utente (normalmente il superutente o root). Il suo nome è una concatenazione di "su" (utente sostitutivo) e "do", o agire.

A differenza del comando su, gli utenti in genere forniscono la propria password a sudo anziché la password di root. Dopo l'autenticazione e se il file di configurazione / usr / local / etc / sudoers (a volte trovato in / etc / sudoers) consente l'accesso dell'utente, il sistema invocherà il comando richiesto. Il file di configurazione sudoers consente un'enorme quantità di configurabilità, incluso ma non limitato a: abilitare i comandi di root solo dal terminale che invoca; non richiede una password per determinati comandi; richiedere una password per utente o gruppo; che richiede di reinserire una password ogni volta o che non richiede mai una password per una particolare riga di comando. Può anche essere configurato per consentire il passaggio di argomenti o più comandi e supporta persino comandi con espressioni regolari.

È un comando temporaneo una tantum con privilegi di superutente (amministratore) senza accesso diretto alla radice.


11
La parte wiki è corretta. Il commento su "Mac is Su" non è corretto. I Mac hanno entrambi sudoe su, proprio come BSD e Linux.
daviewales,

@Virusboy Ciao, mi dispiace provare in questo argomento. Ma devo sapere È facile usare Ubuntu 14.04 con Toshiba M840 i3-3110M. Grazie.
Bonn,

È facile su qualsiasi PC
Virusboy

21

xkcd: Sandwich

Prima di sudo , la maggior parte degli amministratori aveva effettuato l'accesso come utente root perché è un modo semplice per configurare il sistema, poiché disponi di tutti i diritti. Tuttavia, un piccolo errore o un collegamento Internet errato e l'intero sistema potrebbero essere interessati o addirittura compromessi.

A causa di questo problema, apparve sudo . L'obiettivo era utilizzare i privilegi di amministratore solo per un breve periodo di tempo e solo quando necessario. Inoltre, ciò eviterebbe che l'utente acceda a un altro account. Ciò aumenterebbe ovviamente la sicurezza del sistema .

Sotto Ubuntu , scelgono di migliorare la sicurezza del tuo sistema. Pertanto, hanno deciso di seguire la strada "sudo". L'utente root è disabilitato; non è necessario e soprattutto non esiste il rischio che un utente abbia effettuato l'accesso tramite l'interfaccia X con l'utente root. Inoltre, hanno consentito l'avvio di ogni comando con sudo per gli utenti autorizzati. La cosa interessante è che gli utenti esperti possono accedere all'account di root.

Svantaggi di sudo:

  • Quali comandi consenti tramite sudo
  • È necessario scrivere sudoprima di ogni comando che richiede privilegi di amministratore
  • Ogni tanto è necessario digitare nuovamente la password .

Cosa sudosignifica? Il suo nome è una concatenazione di "su" (utente sostitutivo) e "do".

Perché sudono admin? Penso che sudosignifichi adminper un tempo specifico e solo quando ne hai bisogno.

Le persone che provengono dall'ambiente Windows dovrebbero capire perché non lo è admin :)

Riferimenti: Immagine del sito
: xkcd


quindi perché non si chiama rodo?
JamesRyan,

3
Il tuo paragrafo "prima di sudo" è sbagliato. Non vi è alcuna differenza tra sue sudoin questo senso, l'unica differenza tra i due è quali credenziali vengono utilizzate. L'uso sudopiuttosto che sunon è più sicuro (in effetti, è in qualche modo meno sicuro); il vantaggio principale di sudo (e il motivo per cui Ubuntu l'ha scelto) è la semplicità per l'utente (una sola password da ricordare).
Gilles 'SO- smetti di essere malvagio'

11

Da Linux.com, un prodotto della Linux Foundation:

Sudo sta per " utente sostitutivo do " o " super user do " (a seconda di come lo si desidera guardare). Quello che fa sudo è incredibilmente importante e cruciale per molte distribuzioni Linux. In effetti, sudo consente a un utente di eseguire un programma come un altro utente (molto spesso l'utente root).

[Enfasi mia.] Fonte


3

superutente

C'è un comando, su, per diventare il superutente, quindi potresti dire

$ su
# apt-get install somehorror
# exit
$

sudo ti consente di farlo in un sol colpo e non devi ricordarti di rinunciare ai tuoi poteri magici.

$ sudo apt-get install somehorror

2
su("utente sostitutivo") ti consente di diventare qualsiasi utente: puoi specificare un nome utente come argomento.
David Richerby,

1
In realtà, i due non sono esattamente gli stessi, ma nella maggior parte dei casi sono simili. Ma sudo ti consente principalmente di eseguire un programma con privilegi di superutente, ma mantiene lo stesso ambiente normale. su in realtà ti rende un super utente, con l'ambiente di un super utente.
Marty Fried,

3

Per quanto riguarda il motivo per cui non è "admin" - o più indirettamente, perché su non è "switchUser" o qualcosa del genere - I comandi Unix tradizionali tendono ad essere abbreviazioni minime per ragioni storiche legate alle origini di Unix.

Per la ragione più elementare dobbiamo tornare allo stesso motivo in primo luogo chiamato Unix. Gran parte di Unix è stata ispirata da uno dei primi sistemi operativi multitasking multiutente, Multics del MIT. (Unix prende il nome come "il singolare del Multics" o "Multic castrato", a seconda di chi chiedi e del loro umore in questo momento.)

Tra le altre innovazioni di Multics, è stato introdotto il concetto di separare la posizione effettiva del file dalle informazioni della directory, consentendo a un singolo file di avere più nomi. ("Link", in termini Unix.) Multics ha sfruttato (eccessivamente) questo aspetto; la maggior parte dei comandi Multics hanno sia ALongNameThatIsImpossibleToType che ASNTOECR (un nome breve che solo gli esperti possono ricordare). L'esperienza ha dimostrato che i nomi lunghi non aggiungono molta facilità d'uso da quando, realisticamente, a quel tempo tutti gli utenti erano o diventavano rapidamente "esperti" e quasi nessuno usava mai i nomi lunghi. Quando Unix adottò alcuni dei progetti di Multics, una delle loro semplificazioni fu quella di scartare i nomi lunghi non utilizzati e mantenere solo i nomi brevi adatti agli esperti.

Ciò si adatta anche bene alla filosofia Unix di ridurre il sistema operativo e il suo set di comandi di base ai loro elementi essenziali, consentendogli di funzionare in modo efficiente su sistemi più piccoli. A quei tempi i programmatori stavano ancora conservando ogni byte e ciclo possibile. I processori erano tremendamente più lenti, anche le velocità dei terminali erano tremendamente più lente e la memoria era tremendamente più costosa (e più lenta, e aveva minuscole cache se ce ne fossero). Mantenere i comandi di sistema a una lunghezza minima potrebbe non aver effettivamente risparmiato molte (se presenti) risorse reali, ma "sembrava giusto" per la mentalità del tempo.

Se insisti davvero su nomi di comandi intuitivi, la risposta Unix sarebbe "Sai come scrivere uno script di shell; implementalo tu stesso. Se non sai come scrivere uno script di shell, devi imparare come fare così. Se non ti piace imparare e / o scrivere codice, non sarai contento di Unix e dovresti usare qualcos'altro. "


3

Se il " superutente " è su originariamente derivato, non è preciso poiché il nome utente che gli viene fornito non deve essere un superutente. Idem per l'esecuzione di comandi come un altro utente che utilizza sudo -u.

" Utente sostitutivo " è più preciso, ma suona goffo. Mi viene in mente un insegnante supplente.

Quindi preferisco pensare susemplicemente a "cambia utente" e sudoquindi a "cambia utente e fai".


1
sempre che sia un super utente, ma sostituisce il suono dell'utente più giusto
BeyondProgrammer,

1

Dal sito web del Sudo :

"Che cos'è il Sudo?

Sudo (su "do") consente a un amministratore di sistema di delegare l'autorità per dare ad alcuni utenti (o gruppi di utenti) la possibilità di eseguire alcuni (o tutti) comandi come root o un altro utente fornendo una traccia di controllo dei comandi e dei loro argomenti ".

"Il Sudo è stato concepito e implementato per la prima volta da Bob Coggeshall e Cliff Spencer intorno al 1980 presso il Dipartimento di Informatica della SUNY / Buffalo. Funzionava su un VAX-11/750 con 4.1BSD. Una versione aggiornata, attribuita a Phil Betchel, Cliff Spencer , Gretchen Phillips, John LoVerso e Don Gworek, furono inviati al newsgroup Usenet net.sources nel dicembre del 1985. "

Detto questo, anche se non credo ci siano prove, ho sempre creduto fermamente che il nome fosse una specie di scherzo programmatore geek. Hai il comando "su" (super user) "do" ma in realtà non sei un super user - trasforma "doo" in "doh" e "sudo" assomiglia / suona molto "pseudo" (fake , finto).


-2

Molte persone hanno dato la risposta che si tratta di un mashup di "super user do". Mi piace questo, ma potrebbe essere più corretto dire che è un mashup di "utente sostitutivo fare" perché puoi scegliere quale utente "fare" come con il flag -u.

Lo considero anche come un gioco sulla parola psuedonym perché puoi fingere di essere qualcun altro, root o qualsiasi altro utente che usa il flag -u.


3
Bene, la domanda era perché è chiamato così com'è, non per i backronimi e / o i mnemonici, quindi ... [citazione necessaria]
derobert,

Anche l'utente di destinazione predefinito non deve essere root(anche se ha senso che sia o almeno uno con uid 0 e generalmente lo è), vedere runas_defaultin sudoers.
Stéphane Chazelas,

@derobert +1 per l'uso di "backronimi" e per mantenere il sito pulito da risposte errate.
tre tazze,

@sch grazie, non lo sapevo.
tre tazze,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.