Como executo o terminal no modo sudo?

20

Eu estava tentando instalar o npm e obtive

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

Como fazer login como raiz?

balexandre
fonte
3
Não faça login como root. ;-)
Chris #

Respostas:

39

sudo -sé muito mais fácil do que habilitar o usuário root, pois ele inicia um shell com permissões de root como uma etapa, ação sob demanda. Não é apenas rápido, mas não precisa ser reconfigurado quando você não precisa do usuário root e não expõe o servidor a mais riscos ou vulnerabilidades que a adição de um usuário root acarretaria.

Claro que npmvocê pode simplesmente seguir as instruções e digitar:

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

Isso ainda cria o npmcomando "root" e ignora a etapa de logout para voltar à raiz.

bmike
fonte
7
Mas melhor ao sudo a um comando em vez de executar sob uma shell como root
user151019
1
Você poderia explicar o que sudo -sfaz neste contexto?
KatieK
1
@KatieK O comando sudo -sexecuta um shell como root. A página do manual possui esses detalhes e muito mais. Acrescentarei algumas palavras, já que sua pergunta é boa e muitas outras também podem se perguntar o que ela faz.
bmike
@ BMike - Isso é exatamente o que eu precisava - obrigado!
KatieK
10

Eu costumo fazer isso de maneira um pouco diferente do que as outras descritas aqui. Vamos imaginar que você tem dois usuários. usuário padrão: john usuário admin: kevin

Se john estiver logado e quiser executar como usuário root (como kevin), aqui está como eu faço isso.

su kevin

quando solicitado, digite a senha de kevin

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

digite a senha de Kevin novamente.

carmático
fonte
Depois de mudar o usuário para kevin, por que você precisa sudo?
cm2
Como Kevin não é raiz, ele apenas pode se tornar raiz.
Xvolks
4

Você precisa usar o sucomando (alternar usuário) para se tornar root, mas somente o root pode se tornar root; portanto, você deve usar sudo(o superusuário faz). Por isso, digite: sudo su.

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

Se você nunca usou o root, lembre-se de que um caractere errado digitado como root excluirá todo o sistema operacional, incluindo fotos, e-mails e documentos financeiros. Seja extremamente cuidadoso e sempre leia três vezes o que você digita antes de pressionar Enter. Caso contrário, boa sorte!

wjl
fonte
1
sido um técnico de suporte AIX por 3 anos ... 12 anos atrás :) sei algumas coisas, mas as coisas simples tinha desaparecido da minha cabeça :)
balexandre
Eu estava indo para snark minha resposta com manual amigável e sugestões do Google, mas rapidamente excluí-lo depois de ler sua biografia. Bem-vindo ao mac. Ainda não consigo digitar vm_stat após anos do AIX. Obtido aliases amor shell ;-)
bmike
Por que usar em sudo suvez de sudo -s?
Chris Página
1
Tudo o que vejo é NCC-1701 lol
Shane Hsu
@ShaneHsu good one !! Eu adorei o seu comentário ...
jmh 29/08
2

Corri o mesmo problema ao tentar instalar o ionic, você só precisa executar o mesmo comando com sudo:

sudo npm install -g ionic cordova

O sistema solicitará a senha do usuário atual. Forneça e você poderá instalar como superusuário.

Maria Teresa Molero
fonte