27 votes

Comment exécuter le terminal en mode sudo ?

J'essayais d'installer npm et j'ai obtenu

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

Comment se connecter en tant que Root ?

4 votes

Ne vous connectez pas en tant que Root ;-)

49voto

Oskar Points 1242

sudo -s est beaucoup plus facile que activer l'utilisateur Root puisqu'il ne fait que démarrer un shell avec les droits de Root en une seule étape, à la demande. Non seulement il est rapide, mais il n'a pas besoin d'être reconfiguré lorsque vous n'avez pas besoin de l'utilisateur root et il n'expose pas le serveur à un risque ou une vulnérabilité supplémentaire que l'ajout d'un utilisateur root entraînerait.

Bien sûr, pour npm vous pourriez simplement suivre les instructions et taper :

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

Cela fait toujours de la npm commande "Root" et saute l'étape de déconnexion pour sortir de Root.

8 votes

Mais il est préférable de sudo la seule commande plutôt que de l'exécuter sous un shell en tant que Root.

1 votes

Pourriez-vous expliquer ce que sudo -s fait dans ce contexte ?

1 votes

@KatieK La commande sudo -s exécute un shell en tant que Root. Le site page de manuel contient ces détails et bien plus encore. Je vais ajouter quelques mots puisque votre question est bonne et que beaucoup d'autres pourraient aussi se demander ce qu'il fait.

13voto

karmatic Points 819

Je fais généralement les choses un peu différemment de ce que les autres ont décrit ici. Imaginons que vous ayez deux utilisateurs. utilisateur standard : john utilisateur admin : kevin

Si Jean est connecté et veut s'exécuter en tant qu'utilisateur racine (comme Kevin), voici comment je procède.

su kevin

quand on vous demande d'entrer le mot de passe de Kevin

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

Entrez à nouveau le mot de passe de Kevin.

0 votes

Après avoir déjà changé d'utilisateur pour kevin, pourquoi avez-vous besoin de l'option sudo ?

1 votes

Parce que Kevin n'est pas Root, il est juste autorisé à devenir Root.

5voto

wjl Points 1328

Vous devez utiliser le su (switch user) pour devenir Root, mais seul Root est autorisé à devenir Root, vous devez donc utiliser la commande sudo (super-utilisateur faire). Par conséquent, tapez : sudo su .

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

Si vous n'avez jamais utilisé Root auparavant, vous devez être pleinement conscient qu'un seul caractère erroné tapé en tant que Root supprimera tout votre système d'exploitation, y compris vos photos, vos e-mails et vos documents financiers. Soyez extrêmement prudent et lisez toujours trois fois ce que vous tapez avant d'appuyer sur la touche Entrée. Sinon, bonne chance !

1 votes

J'ai été technicien de support AIX pendant 3 ans ... il y a 12 ans :) je connais quelques trucs mais les trucs simples ont disparu de ma tête :)

0 votes

J'allais répondre en snorkelant avec des suggestions amicales de manuel et de google mais je l'ai rapidement supprimé après avoir lu votre bio. Bienvenue chez Mac. Je ne peux toujours pas me résoudre à taper vm_stat après des années sous AIX. Il faut aimer les alias du shell ;-)

0 votes

Pourquoi utiliser sudo su au lieu de sudo -s ?

2voto

J'ai rencontré le même problème en essayant d'installer ionic, il suffit de lancer la même commande avec sudo :

sudo npm install -g ionic cordova

Le système demandera le mot de passe de l'utilisateur actuel. Fournissez-le, et vous serez en mesure d'installer en tant que super-utilisateur.

2voto

mTvare Points 167

A part ce que les gens ont dit, tu peux courir sudo <your-shell> ceci fait apparaître le shell avec les privilèges de Root.

sudo zsh

1 votes

En quoi cela diffère-t-il de la course à pied sudo -s comme expliqué dans la réponse acceptée ?

0 votes

@nohillside c'est peut être trop spécifique, mais oh mon zsh autocomplete n'autocomplete pas les fichiers dans sudo -s zsh mais travaille dans sudo zsh

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X