Come posso eseguire il terminale in modalità sudo?


20

Stavo cercando di installare npm e ho ottenuto

npm ERR! Error: EACCES, Permission denied '/usr/local/lib/node_modules'
npm ERR! 
npm ERR! Please use 'sudo' or log in as root to run this command.
npm ERR! 
npm ERR!     sudo npm "install" "." "--force" "--global"
npm ERR! 
npm ERR! or set the 'unsafe-perm' config var to true.
npm ERR! 
npm ERR!     npm config set unsafe-perm true

Come si accede come root?


3
Non accedere come root. ;-)
Chris Page

Risposte:


39

sudo -sè molto più semplice che abilitare l'utente root poiché avvia una shell con i permessi di root in un solo passaggio, su richiesta. Non solo è veloce, ma non deve essere riconfigurato quando non è necessario l'utente root e non espone il server a ulteriori rischi o vulnerabilità che l'aggiunta di un utente root comporterebbe.

Naturalmente per npmte potresti semplicemente seguire le indicazioni e digitare:

sudo -H npm "install" "." "--force" "--global"

Ciò rende ancora il npmcomando "root" e salta il passaggio di disconnessione per uscire da root.


7
Ma meglio sudo il comando one piuttosto che eseguirlo sotto una shell come root
user151019

1
Potresti spiegare cosa sudo -sfa in questo contesto?
KatieK,

1
@KatieK Il comando sudo -sesegue una shell come root. La pagina del manuale contiene questi dettagli e molto altro. Aggiungerò alcune parole poiché la tua domanda è buona e molti altri potrebbero anche chiedersi cosa faccia.
bmike

@bmike - Questo è esattamente quello di cui avevo bisogno - grazie!
KatieK,

10

Di solito lo faccio in modo leggermente diverso rispetto a come gli altri hanno descritto qui. Immaginiamo di avere due utenti. utente standard: john admin user: kevin

Se john è loggato e vuole essere eseguito come utente root (come kevin) ecco come lo faccio.

su kevin

quando ti viene chiesto inserisci la password di kevin

sudo npm "install" "." "--force" "--global"

inserisci di nuovo la password di kevin.


Dopo aver già passato l'utente a Kevin, perché hai bisogno di sudo?
cm2

Poiché Kevin non è root, gli è solo permesso di diventare root.
Xvolks,

4

Devi usare il sucomando (cambia utente) per diventare root, ma solo root può diventare root, quindi devi usare sudo(super-user do). Pertanto, digitare: sudo su.

[william@NCC-1701 ~]$ sudo su
Password:
[root@NCC-1701 /Users/william]$ 

Se non hai mai usato root prima, dovresti essere pienamente consapevole che un carattere sbagliato digitato come root eliminerà l'intero sistema operativo, inclusi foto, e-mail e documenti finanziari. Fai molta attenzione e leggi sempre tre volte ciò che digiti prima di premere invio. Altrimenti, buona fortuna!


1
sono stato un tecnico di supporto AIX per 3 anni ... 12 anni fa :) conosco alcune cose, ma le cose semplici erano svanite dalla mia testa :)
balexandre,

Stavo per mettere a tacere la mia risposta con manuali amichevoli e suggerimenti su Google, ma l'ho eliminata rapidamente dopo aver letto la tua biografia. Benvenuto in mac. Non riesco ancora a scrivere vm_stat dopo anni di AIX. Devo amare gli alias di shell ;-)
bmike

Perché usare sudo suinvece di sudo -s?
Chris Page

1
Tutto quello che vedo è NCC-1701 lol
Shane Hsu il

@ShaneHsu bravo !! ho adorato il tuo commento ...
jmh

2

Ho riscontrato lo stesso problema nel tentativo di installare ionico, devi solo eseguire lo stesso comando con sudo:

sudo npm install -g ionic cordova

Il sistema richiederà la password dell'utente corrente. Forniscilo e sarai in grado di installare come superutente.

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.