Qual è la differenza tra il comando sudo e su?


12

Qual è la differenza tra il comando sudoe su? Perché OS X gestisce questi diversi da Linux?


1
Semmai, Linux li gestirà in modo diverso rispetto a OS X. OS X è certificato Unix, il che significa che è conforme a un determinato standard di comportamento. Linux è simile a Unix, ma non è certificato Unix e non è necessariamente conforme allo standard Unix. Quindi se ci sono differenze (oltre alla questione della password di root annotata nella risposta di Aaron Lake), non sono conformi da parte degli implementatori della particolare distribuzione Linux in questione.
alesplin,

Risposte:


21

OS X gestisce sudoe suidenticamente a Linux.

sudoè un comando che, senza ulteriori opzioni, eseguirà un comando come root. Per esempio:

% touch /newfile
touch: /newfile: Permission denied
% ls -l /newfile
ls: /newfile: No such file or directory
% sudo touch /newfile
% ls -l /newfile 
-rw-r--r--  1 root  wheel  0 Apr 27 11:45 /newfile

sud'altra parte, l'utente corrente passerà a root (di nuovo senza ulteriori comandi). Nell'esempio seguente, devo eseguire sudo su, poiché non conosco la password di root per il mio sistema:

% whoami
alake
% sudo su
$ whoami
root

La differenza chiave tra sudoe suis sudoesegue un comando come root, mentre suti rende root. Proprio come le altre utility da riga di comando, ci sono molti modi alternativi di usare entrambi sudoe su, se sei interessato, puoi sempre eseguire man <command>ad es. man sudoper ottenere maggiori informazioni.


5
In termini linguistici semplici si sudopuò pensare a come super user and do. Come ulteriore punto, su OS X, dopo aver eseguito correttamente l'autenticazione, è possibile utilizzare sudo senza password per un breve periodo (5 minuti per impostazione predefinita, a meno che non venga ignorato sudoers), dopodiché sarà necessario digitare nuovamente la password.
binarybob,

1
il 'senza opzioni aggiuntive' è un qualificatore piuttosto significativo ... ti permetteranno entrambi di diventare utenti diversi da root ... ad esempio, sudo su -lm _wwwti consentiranno di avere la shell come se l'utente del server web (eseguendo il comando come root, come non ha una password valida)
Joe,

2
@Joe, ho considerato di aggiungere quelle informazioni ma ho omesso per brevità. Come descrivi, sudoè un'utilità piuttosto solida e coprire anche le funzionalità di base qui alla fine confonderebbe o travolgerebbe il pubblico di destinazione alla ricerca di una differenziazione tra sudoe su.
Lago Aaron,

"La differenza chiave tra sudo e su è che sudo esegue un comando come root, mentre su ti rende root" - false, sudo -sesegue shell ("ti rende root") ed su -c commandesegue il comando come root.
el.pescado,

2
Ancora per brevità ho omesso i molti metodi alternativi di utilizzo sudo. Inoltre, non puoi farlo su -c commanddi default su OS X, poiché non conosci la password di root. Tuttavia sudo su, è possibile modificare la password, quindi su -c command. Sento che alla domanda è stata data una risposta, e non è stato necessario approfondire l'uso alternato di sudo e su. Comunque aggiornerò il post per i curiosi.
Lago Aaron,
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.