Risposte:
In MacOS X, l'utente root è disabilitato per impostazione predefinita, quindi su
non funzionerà. Come altri hanno già detto, è meglio usare sudo
.
Se è necessario abilitare l'utente root, vedere la nota tecnica di Apple: Abilitazione e utilizzando l'utente "root" in Mac OS X .
sudo su
, qual è il punto di disabilitazione del mondo su
allora?
su
", è quello di impedire il login root . Impedendo l'accesso come root
, si impediscono numerosi possibili problemi di sicurezza. Non permettere a qualcuno che può sudo
farlo su
è un po 'sciocco. Fondamentalmente, su
cambia solo l'ID utente corrente ed esegue un comando (una shell, se non specificato). Se l'id utente è già 0 (root), come quando eseguito con sudo
, non c'è niente da fare, quindi esegue solo la shell. Puoi ottenere un effetto simile facendo sudo bash
.
Hai due opzioni. Il primo è usare sudo -s
- questo ti darà accesso da superutente, ma rimarrai comunque 'te stesso' (per così dire), quindi cose come ~
la tua home directory. In alternativa, puoi usare sudo su
, che ti dà una shell come l'utente root effettivo del tuo Mac.
sudo
per eseguire comandi che richiedono privilegi elevati, non per passare a una shell di root e lavorare da quello.
sudo
ethos all'estremo. Ma qualunque cosa: semantica. Non utilizzare le shell di root in OS X.
Ad esempio, se hai bisogno di spostare i file o usare git usando la CLI, in quel caso, la soluzione migliore sarà usare il sudo -s
comando. Dopo quel comando, non è necessario continuare a inserire la password più e più volte.
Penso che non puoi farlo come un utente "normale" ...
Se esiste un altro account utente con diritti di amministratore, è necessario utilizzare questo
restricted user$ su
Password:(the root password here)
Sorry!
restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now
sudo -u
Per eseguire come un altro uso, utilizzare sudo -u
.
Ad esempio, per eseguire un editor di testo come nano :
sudo -u someuser nano
... e inserisci la password dell'utente amministratore Mac quando richiesto. A questo punto, è il tuo utente amministratore Mac che sta invocando sudo
, non l' someuser
utente, quindi non inserisci la someuser
password.
sudo
significa eseguire qualcosa utilizzando i privilegi di superutente.-u
significa "eseguire un comando specificato come questo utente specificato".someuser
dovrebbe essere sostituito con il nome utente desiderato.Per simulare un accesso iniziale come un particolare utente, inclusa l'esecuzione degli script di avvio, utilizzare -I
.
sudo -u someuser -i nano
Questo esegue l' nano
app come utente someuser
ma solo dopo aver eseguito gli script di avvio per quell'utente.
Se decidiamo di non specificare un comando o un'app da eseguire, otteniamo una shell interattiva in esecuzione come tale utente.
sudo -u someuser -i
sudo su someuser
Un altro approccio utilizza il su
comando in combinazione con sudo
. Il su
comando significa "cambia utente".
sudo su someuser
In alternativa, per includere l'esecuzione degli script di avvio dell'utente, aggiungere il trattino.
sudo su - someuser
root
utenteL' root
utente nei sistemi operativi relativi a Unix ha il potere assoluto di fare qualsiasi cosa.
Apple ha scelto di disabilitare l' root
account in macOS, per evitare gli exploit della vulnerabilità della sicurezza e per proteggerti dal spararti ai piedi. Apple ha creato l'idea degli account utente amministratore che hanno molti poteri, più poteri di un account utente standard , ma non un potere assoluto come root
ha fatto. Vedi questa nota di supporto Apple per la discussione.
Se necessario, puoi abilitare l' root
utente in macOS e passare a quell'utente. Questo è fortemente scoraggiato. Vorrei seguire questa strada solo come ultima risorsa disperata.
Per una discussione di questo nel contesto postgres
dell'utente che esegue il sistema di database Postgres su macOS, vedere questa domanda sul sito gemello , DBA Stack Exchange .
sudo su
funziona ancora, quindi non è davvero disabilitato. Non ha solo password.