Як запустити термінал в режимі sudo?


20

Я намагався встановити npm , і отримав

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

Як увійти як корінь?


3
Не входити як root. ;-)
Chris Page

Відповіді:


39

sudo -sнабагато простіше, ніж ввімкнути користувача root, оскільки він просто запускає оболонку з дозволом root, як один крок, під час дії на вимогу. Це не тільки швидко, але і не потрібно переналаштовувати його, коли вам не потрібен користувач root і не піддає серверу ніякого більшого ризику чи вразливості, що може спричинити додавання користувача root.

Звичайно, npmви можете просто слідувати вказівкам і ввести:

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

Це все ще робить npmкоманду "root" і пропускає крок виходу з системи, щоб повернутися з кореня.


7
Але краще подати одну команду, а не запускати під оболонку як root
user151019

1
Чи можете ви пояснити, що sudo -sстосується цього контексту?
KatieK

1
@KatieK Команда sudo -sвиконує оболонку як корінь. На сторінці керівництва є ці деталі та багато іншого. Я додам кілька слів, оскільки ваше питання хороший, і багато інших можуть також задатися питанням, що це робить.
bmike

@bmike - Саме це мені і потрібно - дякую!
KatieK

10

Я зазвичай роблю це трохи інакше, ніж як описано тут інших. Давайте уявимо, що у вас є два користувачі. стандартний користувач: Джон адміністратор користувача: Кевін

Якщо Джон увійшов у систему і хоче запуститись як користувач root (як кевін), ось як це зробити.

su kevin

на запит введіть пароль Кевіна

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

знову введіть пароль Кевіна.


Після того, як ви вже переключили користувача на кевін, навіщо вам це потрібно sudo?
см2

Оскільки Кевін не є коренем, йому просто дозволено стати коренем.
Xvolks

4

Вам потрібно скористатися командою su(переключити користувача), щоб стати коренем, але тільки корінь дозволено стати кореневим, тому вам потрібно скористатися sudo(суперкористувач робити). Тому, введіть: sudo su.

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

Якщо ви раніше не використовували root, вам слід повністю зрозуміти, що один неправильний символ, введений як root, видалить всю вашу операційну систему, включаючи ваші фотографії, електронні листи та фінансові документи. Будьте надзвичайно уважні і завжди потрійно читайте те, що ви вводите, перш ніж натискати на введення. Інакше удачі!


1
був техніком з підтримки AIX протягом 3 років ... 12 років тому :) знаю деякі речі, але прості речі
випали

Я збирався вирвати свою відповідь дружними посібниками та пропозиціями Google, але швидко видалив її, прочитавши вашу біографію. Ласкаво просимо до mac. Я все ще не можу змусити себе набрати vm_stat через роки AIX. Треба полюбити псевдоніми оболонок ;-)
bmike

Навіщо використовувати sudo suзамість sudo -s?
Кріс Пейдж

1
Все, що я бачу, це NCC-1701 lol
Шейн Хсу

@ShaneHsu хороший !! мені сподобався ваш коментар ...
jmh

2

Я запустив ту саму проблему, намагаючись встановити ionic, вам потрібно запустити ту саму команду sudo:

sudo npm install -g ionic cordova

Система запитає пароль поточного користувача. Надайте це, і ви зможете встановити як суперпользователь.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.