Bagaimana cara menjalankan terminal dalam mode sudo?

20

Saya mencoba menginstal npm , dan saya mendapatkannya

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

Bagaimana bisa masuk sebagai root?

balexandre
sumber
3
Jangan login sebagai root. ;-)
Chris Page

Jawaban:

39

sudo -sjauh lebih mudah daripada mengaktifkan pengguna root karena hanya menjalankan shell dengan izin root sebagai satu langkah, sesuai permintaan. Tidak hanya cepat, tetapi tidak perlu dikonfigurasi ulang ketika Anda tidak membutuhkan pengguna root dan tidak membuat server lebih berisiko atau rentan dengan menambahkan pengguna root.

Tentu saja untuk npmAnda cukup ikuti arahan dan ketik:

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

Itu masih membuat npmperintah "root" dan melompati langkah log out untuk kembali dari root.

bmike
sumber
7
Tapi lebih baik sudo satu perintah daripada dijalankan di bawah shell sebagai root
user151019
1
Bisakah Anda menjelaskan apa yang sudo -sterjadi dalam konteks ini?
KatieK
1
@KatieK Perintah ini sudo -smenjalankan shell sebagai root. The Halaman pengguna memiliki rincian ini dan banyak lagi. Saya akan menambahkan beberapa kata karena pertanyaan Anda adalah yang baik dan banyak orang lain juga mungkin bertanya-tanya apa fungsinya.
bmike
@bmike - Itulah yang saya butuhkan - terima kasih!
KatieK
10

Saya biasanya melakukannya sedikit berbeda dari yang dijelaskan orang lain di sini. Mari kita bayangkan Anda memiliki dua pengguna. pengguna standar: john admin pengguna: kevin

Jika john masuk dan ingin menjalankan sebagai pengguna root (seperti kevin) di sini adalah bagaimana saya melakukannya.

su kevin

ketika ditanya masukkan kata sandi Kevin

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

masukkan kata sandi lagi

karmatis
sumber
Setelah Anda beralih pengguna ke kevin, mengapa Anda perlu sudo?
cm2
Karena Kevin bukan root, ia hanya diizinkan menjadi root.
Xvolks
4

Anda perlu menggunakan perintah su(ganti pengguna) untuk menjadi root, tetapi hanya root yang diizinkan untuk menjadi root, jadi Anda perlu menggunakan sudo(lakukan super-user). Oleh karena itu, ketik: sudo su.

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

Jika Anda belum pernah menggunakan root, Anda harus dibuat sadar sepenuhnya bahwa satu karakter yang salah ketik root akan menghapus seluruh sistem operasi Anda, termasuk foto, email, dan dokumen keuangan Anda. Berhati-hatilah dan selalu baca tiga kali apa yang Anda ketik sebelum menekan enter. Kalau tidak, semoga berhasil!

wjl
sumber
1
menjadi teknisi dukungan AIX selama 3 tahun ... 12 tahun yang lalu :) tahu beberapa hal tetapi hal-hal sederhana telah hilang dari kepalaku :)
balexandre
Saya akan menggunakan jawaban saya dengan saran ramah dan google tetapi dengan cepat menghapusnya setelah membaca bio Anda. Selamat datang di mac. Saya masih belum bisa mengetikkan vm_stat setelah bertahun-tahun AIX. Harus cinta alias shell ;-)
bmike
Kenapa menggunakan sudo subukan sudo -s?
Chris Page
1
Yang saya lihat adalah NCC-1701 lol
Shane Hsu
@ShaneHsu bagus sekali !! saya menyukai komentar Anda ...
jmh
2

Saya menjalankan masalah yang sama mencoba menginstal ion, Anda hanya perlu menjalankan perintah yang sama dengan sudo:

sudo npm install -g ionic cordova

Sistem akan meminta kata sandi pengguna saat ini. Berikan itu, dan Anda akan dapat menginstal sebagai superuser.

Maria Teresa Molero
sumber