Wie führe ich das Terminal im Sudo-Modus aus?

Ich habe versucht, npm zu installieren , und ich habe

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

Wie kann ich mich als Root anmelden?

Melden Sie sich nicht als root an. ;-)

Antworten (5)

sudo -sist viel einfacher als das Aktivieren des Root-Benutzers , da es nur eine Shell mit Root-Berechtigungen als One-Step-On-Demand-Aktion startet. Es ist nicht nur schnell, sondern muss auch nicht neu konfiguriert werden, wenn Sie den Root-Benutzer nicht benötigen, und setzt den Server nicht mehr Risiken oder Schwachstellen aus, die das Hinzufügen eines Root-Benutzers mit sich bringen würde.

Natürlich npmkönnten Sie einfach den Anweisungen folgen und Folgendes eingeben:

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

Das macht den npmBefehl immer noch zu "root" und überspringt den Abmeldeschritt, um wieder aus dem Root herauszukommen.

Aber es ist besser, den einen Befehl zu sudo, anstatt unter einer Shell als root ausgeführt zu werden
Können Sie erklären, was sudo -sin diesem Zusammenhang bedeutet?
@KatieK Der Befehl sudo -sführt eine Shell als root aus. Die Handbuchseite enthält diese Details und vieles mehr. Ich werde einige Worte hinzufügen, da Ihre Frage gut ist und viele andere sich vielleicht auch fragen, was sie bewirkt.
@bmike - Genau das habe ich gebraucht - danke!

Normalerweise mache ich es etwas anders als hier beschrieben. Stellen wir uns vor, Sie haben zwei Benutzer. Standardbenutzer: John Administratorbenutzer: Kevin

Wenn John angemeldet ist und als Root-Benutzer (als Kevin) ausgeführt werden möchte, gehe ich wie folgt vor.

su kevin

Wenn Sie gefragt werden, geben Sie Kevins Passwort ein

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

Geben Sie Kevins Passwort erneut ein.

Nachdem Sie den Benutzer bereits auf kevin umgestellt haben, warum brauchen Sie das sudo?
Da Kevin kein Root ist, darf er nur Root werden.

Sie müssen den suBefehl (switch user) verwenden, um root zu werden, aber nur root darf root werden, also müssen Sie sudo(super-user do) verwenden. Geben Sie daher ein: sudo su.

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

Wenn Sie root noch nie verwendet haben, sollten Sie sich darüber im Klaren sein, dass ein falsches Zeichen, das als root eingegeben wird, Ihr gesamtes Betriebssystem, einschließlich Ihrer Fotos, E-Mails und Finanzdokumente, löscht. Seien Sie äußerst vorsichtig und lesen Sie Ihre Eingabe immer dreifach, bevor Sie die Eingabetaste drücken. Ansonsten viel Glück!

war 3 Jahre lang ein AIX-Support-Techniker ... vor 12 Jahren :) kannte einiges, aber das einfache Zeug war aus meinem Kopf verschwunden :)
Ich wollte meine Antwort mit freundlichen manuellen und Google-Vorschlägen unterfüttern, habe sie aber schnell gelöscht, nachdem ich Ihre Biografie gelesen hatte. Willkommen bei Mac. Ich kann mich nach Jahren mit AIX immer noch nicht dazu bringen, vm_stat einzugeben. Man muss Shell-Aliase lieben ;-)
Warum sudo sustatt verwenden sudo -s?
Alles was ich sehe ist NCC-1701 lol
@ShaneHsu gut!! Ich fand deinen Kommentar toll...

Ich habe das gleiche Problem beim Versuch, ionic zu installieren, ausgeführt. Sie müssen nur denselben Befehl ausführen mit sudo:

sudo npm install -g ionic cordova

Das System fordert das Passwort des aktuellen Benutzers an. Geben Sie es an, und Sie können es als Superuser installieren.

Abgesehen von dem, was die Leute gesagt haben, können Sie dies ausführen sudo <your-shell>, um die Shell mit Root-Privilegien aufzurufen

sudo zsh
Wie unterscheidet sich dies vom Laufen sudo -s, wie in der akzeptierten Antwort erläutert?
@nohillside das könnte zu spezifisch sein, aber oh mein zsh autocomplete vervollständigt Dateien nicht automatisch sudo -s zsh, funktioniert abersudo zsh