¿Cómo ejecuto el terminal en modo sudo?

20

Estaba tratando de instalar npm , y obtuve

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

¿Cómo puedo iniciar sesión como root?

balexandre
fuente
3
No inicie sesión como root. ;-)
Chris Page

Respuestas:

39

sudo -ses mucho más fácil que habilitar al usuario root ya que solo inicia un shell con permisos de root como un paso, acción bajo demanda. No solo es rápido, sino que no necesita ser reconfigurado cuando no necesita el usuario root y no expone al servidor a ningún riesgo o vulnerabilidad que implique agregar un usuario root.

Por supuesto npm, simplemente puede seguir las instrucciones y escribir:

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

Eso todavía hace que el npmcomando sea "root" y omita el paso de cierre de sesión para volver a salir de root.

bmike
fuente
77
Pero es mejor sudo el comando en lugar de ejecutar bajo un shell como root
user151019
1
¿Podría explicar qué sudo -shace en este contexto?
KatieK
1
@KatieK El comando sudo -sejecuta un shell como root. La página del manual tiene estos detalles y mucho más. Agregaré algunas palabras ya que su pregunta es buena y muchas otras también podrían preguntarse qué hace.
bmike
@bmike - Eso es exactamente lo que necesitaba, ¡gracias!
KatieK
10

Por lo general, lo hago un poco diferente a la que otros describen aquí. Imaginemos que tiene dos usuarios. usuario estándar: usuario administrador de john: kevin

Si John ha iniciado sesión y quiere ejecutarse como usuario root (como Kevin), así es como lo hago.

su kevin

cuando se le solicite, ingrese la contraseña de Kevin

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

ingrese la contraseña de kevin nuevamente.

karmático
fuente
Después de haber cambiado de usuario a Kevin, ¿por qué necesita el sudo?
cm2
Debido a que Kevin no es root, solo se le permite convertirse en root.
Xvolks
4

Debe usar el sucomando (cambiar de usuario) para convertirse en root, pero solo se permite que root se convierta en root, por lo que debe usar sudo(super-user do). Por lo tanto, Tipo: sudo su.

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

Si no ha usado la raíz antes, debe saber que un carácter incorrecto escrito como raíz eliminará todo su sistema operativo, incluidas sus fotos, correos electrónicos y documentos financieros. Tenga mucho cuidado y siempre lea tres veces lo que escribe antes de presionar enter. De lo contrario, buena suerte!

wjl
fuente
1
sido un técnico de soporte de AIX durante 3 años ... Hace 12 años :) conocer algunas cosas, pero las cosas simples había desaparecido de mi cabeza :)
balexandre
Iba a analizar mi respuesta con un manual amigable y sugerencias de Google, pero la borré rápidamente después de leer su biografía. Bienvenido a mac. Todavía no puedo escribir vm_stat después de años de AIX. Tengo que amar alias de concha ;-)
bmike
¿Por qué usar en sudo sulugar de sudo -s?
Chris Page
1
Todo lo que veo es NCC-1701 lol
Shane Hsu
@ShaneHsu buena !! Me encantó tu comentario ...
jmh
2

Ejecuté el mismo problema al intentar instalar iónico, solo necesita ejecutar el mismo comando con sudo:

sudo npm install -g ionic cordova

El sistema solicitará la contraseña del usuario actual. Proporcione, y podrá instalar como superusuario.

Maria Teresa Molero
fuente