Wie starte ich das Terminal im Sudo-Modus?


20

Ich habe versucht, npm zu installieren und bekam

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?


3
Melden Sie sich nicht als root an. ;-)
Chris Seite

Antworten:


39

sudo -sDies ist weitaus einfacher als das Aktivieren des Root-Benutzers, da eine Shell mit Root-Berechtigungen bei Bedarf in einem Schritt gestartet wird. Es ist nicht nur schnell, sondern muss auch nicht neu konfiguriert werden, wenn Sie keinen Root-Benutzer benötigen, und setzt den Server keinem größeren Risiko oder keiner größeren Sicherheitsanfälligkeit aus, die das Hinzufügen eines Root-Benutzers mit sich bringen würde.

Natürlich können npmSie einfach den Anweisungen folgen und Folgendes eingeben:

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

Dadurch wird der npmBefehl immer noch zu "root" und der Abmeldeschritt übersprungen, um wieder aus root herauszukommen.


7
Aber es ist besser, den einen Befehl zu sudo, als als root unter einer Shell zu laufen
user151019

1
Können Sie erklären, was sudo -sin diesem Zusammenhang geschieht?
KatieK

1
@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 eine gute ist und sich viele andere auch fragen könnten, was sie tut.
bmike

@bmike - Genau das habe ich gebraucht - danke!
KatieK

10

Normalerweise mache ich es ein bisschen anders als andere 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 das Kennwort von Kevin ein

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

Geben Sie das Kennwort von Kevin erneut ein.


Nachdem Sie bereits Benutzer zu Kevin gewechselt haben, warum benötigen Sie das sudo?
cm2

Da Kevin kein Root ist, darf er nur Root werden.
Xvolks

4

Sie müssen den suBefehl (switch user) verwenden, um root zu werden, aber nur root darf root werden. Daher müssen Sie sudo(Superuser do) verwenden. Daher geben: sudo su.

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

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


1
ein AIX - Support - Techniker für 3 Jahre gewesen ... vor 12 Jahren :) ein paar Sachen wissen , aber die einfachen Sachen aus meinem Kopf :) verschwunden waren
balexandre

Ich wollte meine Antwort mit freundlichem Handbuch und Google-Vorschlägen abfangen, löschte sie aber schnell, nachdem ich Ihre Biografie gelesen hatte. Willkommen bei Mac. Nach Jahren von AIX kann ich mich immer noch nicht dazu bringen, vm_stat einzugeben.
Muss

Warum sudo sustatt verwenden sudo -s?
Chris Seite

1
Alles was ich sehe ist NCC-1701 lol
Shane Hsu

@ ShaneHsu gut ein !! Ich liebte Ihren Kommentar ...
jmh

2

Ich habe das gleiche Problem bei der Installation von ionic ausgeführt. Sie müssen nur den gleichen Befehl ausführen mit sudo:

sudo npm install -g ionic cordova

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.