Как запустить терминал в режиме 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

Как войти в систему как root?


3
Не входите в систему как root. ;-)
Крис Пейдж

Ответы:


39

sudo -sэто гораздо проще, чем включить пользователя root, поскольку он просто запускает оболочку с правами root как один шаг по требованию. Это не только быстро, но и не требует перенастройки, когда вам не нужен пользователь root, и не подвергает сервер какой-либо дополнительной опасности или уязвимости, которые может повлечь добавление пользователя root.

Конечно, npmвы можете просто следовать инструкциям и набрать:

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

Это по-прежнему делает npmкоманду «root» и пропускает шаг выхода из системы, чтобы вернуться из root.


7
Но лучше выполнить sudo одну команду, а не запускать ее под оболочкой от имени пользователя root
user151019

1
Не могли бы вы объяснить, что sudo -sделает в этом контексте?
KatieK

1
@KatieK Команда sudo -sзапускает оболочку от имени пользователя root. Страница руководства содержит эти детали и многое другое. Я добавлю несколько слов, так как ваш вопрос хороший, и многие другие могут также задаться вопросом, что он делает.
Bmike

@bmike - Это именно то, что мне было нужно - спасибо!
КатиК

10

Я обычно делаю это немного иначе, чем другие, описанные здесь. Предположим, у вас есть два пользователя. Обычный пользователь: Джон Администратор: Кевин

Если Джон вошел в систему и хочет работать как пользователь root (как кевин), вот как я это делаю.

su kevin

когда попросят ввести пароль кевина

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

введите пароль Кевина снова.


После того, как вы уже переключили пользователя на Кевина, зачем вам sudo?
см2

Поскольку Кевин не root, ему просто разрешено стать root.
Ксволкс

4

Вам нужно использовать команду su(переключить пользователя), чтобы стать пользователем root, но только root может стать пользователем root, так что вам нужно использовать sudo( это должен делать суперпользователь). Поэтому, введите: sudo su.

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

Если вы ранее не использовали root, вы должны полностью осознавать, что один неправильный символ, введенный как root, удалит всю вашу операционную систему, включая ваши фотографии, электронные письма и финансовые документы. Будьте предельно внимательны и всегда внимательно читайте то, что вы печатаете, прежде чем нажать Enter. В противном случае, удачи!


1
был техником поддержки AIX в течение 3 лет ... 12 лет назад :) кое-что знаю, но простые вещи исчезли из моей головы :)
balexandre

Я собирался придумать свой ответ с дружественным руководством и предложениями Google, но быстро удалил его после прочтения вашей биографии. Добро пожаловать в Mac. Я все еще не могу заставить себя набрать vm_stat после нескольких лет AIX. Должен любить псевдонимы оболочки ;-)
bmike

Зачем использовать sudo suвместо sudo -s?
Крис Пейдж

1
Все, что я вижу, это NCC-1701 лол
Шейн Хсу

@ShaneHsu хороший !!
Мне

2

Я запустил ту же проблему, пытаясь установить ionic, вам нужно только запустить ту же команду с sudo:

sudo npm install -g ionic cordova

Система запросит пароль текущего пользователя. Предоставьте его, и вы сможете установить в качестве суперпользователя.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.