Làm cách nào để chạy terminal trong chế độ sudo?


20

Tôi đã cố gắng cài đặt npm , và tôi đã nhận được

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

Làm thế nào có thể đăng nhập như một root?


3
Không đăng nhập với quyền root. ;-)
Chris Trang

Câu trả lời:


39

sudo -sdễ dàng hơn nhiều so với việc cho phép người dùng root vì nó chỉ khởi động một trình bao với quyền truy cập gốc dưới dạng một bước, theo yêu cầu hành động. Không chỉ nhanh, mà nó không cần phải được cấu hình lại khi bạn không cần người dùng root và không để máy chủ gặp bất kỳ rủi ro hoặc lỗ hổng nào mà việc thêm người dùng root sẽ đòi hỏi.

Tất nhiên đối với npmbạn chỉ có thể làm theo hướng dẫn và gõ:

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

Điều đó vẫn làm cho npmlệnh "root" và bỏ qua bước đăng xuất để thoát khỏi root.


7
Nhưng tốt hơn là sudo một lệnh thay vì chạy dưới vỏ như root
user151019

1
Bạn có thể giải thích những gì sudo -slàm trong bối cảnh này?
KatieK

1
@KatieK Lệnh sudo -schạy shell là root. Các trang hướng dẫn có những chi tiết và nhiều hơn nữa. Tôi sẽ thêm một số từ vì câu hỏi của bạn là một câu hỏi hay và nhiều người khác cũng có thể tự hỏi nó làm gì.
bmike

@bmike - Đó chính xác là những gì tôi cần - cảm ơn!
KatieK

10

Tôi thường làm nó hơi khác so với cách người khác mô tả ở đây. Hãy tưởng tượng bạn có hai người dùng. người dùng chuẩn: john admin user: kevin

Nếu john đã đăng nhập và muốn chạy như một người dùng root (như kevin) thì đây là cách tôi làm điều đó.

su kevin

Khi được hỏi hãy nhập mật khẩu của kevin

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

nhập lại mật khẩu của kevin.


Sau khi bạn đã chuyển người dùng sang kevin, tại sao bạn cần sudo?
cm2

Bởi vì Kevin không phải là root, anh ta chỉ được phép trở thành root.
Xvolks

4

Bạn cần sử dụng lệnh su(chuyển người dùng) để trở thành root, nhưng chỉ root mới được phép trở thành root, vì vậy bạn cần sử dụng sudo(siêu người dùng làm). Do đó, gõ : sudo su.

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

Nếu bạn chưa sử dụng root trước đó, bạn nên biết đầy đủ rằng một ký tự sai được nhập là root sẽ xóa toàn bộ hệ điều hành của bạn, bao gồm ảnh, email và tài liệu tài chính của bạn. Hãy cực kỳ cẩn thận và luôn đọc ba lần những gì bạn nhập trước khi nhấn enter. Nếu không, chúc may mắn!


1
là một kỹ thuật viên hỗ trợ AIX trong 3 năm ... 12 năm trước :) biết một số thứ nhưng những thứ đơn giản đã biến mất khỏi đầu tôi :)
balexandre

Tôi sẽ đọc câu trả lời của mình bằng hướng dẫn thân thiện và các đề xuất của google nhưng đã nhanh chóng xóa nó sau khi đọc tiểu sử của bạn. Chào mừng đến với mac. Tôi vẫn không thể tự mình gõ vm_stat sau nhiều năm AIX.

Tại sao sử dụng sudo suthay vì sudo -s?
Chris Trang

1
Tất cả những gì tôi thấy là NCC-1701 lol
Shane Hsu

@ShaneHsu tốt một !! tôi thích bình luận của bạn ...
jmh

2

Tôi đã chạy cùng một vấn đề khi cố gắng cài đặt ion, bạn chỉ cần chạy cùng một lệnh với sudo:

sudo npm install -g ionic cordova

Hệ thống sẽ yêu cầu mật khẩu người dùng hiện tại. Cung cấp nó, và bạn sẽ có thể cài đặt như siêu người dùng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.