Jak uruchomić terminal w trybie sudo?

20

Próbowałem zainstalować npm i dostałem

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

Jak zalogować się jako root?

balexandre
źródło
3
Nie loguj się jako root. ;-)
Chris Page

Odpowiedzi:

39

sudo -sjest znacznie łatwiejsze niż włączenie użytkownika root, ponieważ po prostu uruchamia powłokę z uprawnieniami root jako jeden krok, na żądanie. Jest nie tylko szybki, ale nie musi być ponownie konfigurowany, gdy nie potrzebujesz użytkownika root i nie narażasz serwera na żadne ryzyko ani podatność, jaką pociąga za sobą dodanie użytkownika root.

Oczywiście npmmożesz po prostu postępować zgodnie ze wskazówkami i wpisać:

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

To sprawia, że npmpolecenie „root” i pomija krok wylogowania, aby wrócić z roota.

bmike
źródło
7
Ale lepiej sudo wykonać jedną komendę niż uruchamiać się pod powłoką jako root
użytkownik151019,
1
Czy możesz wyjaśnić, co sudo -srobi w tym kontekście?
KatieK,
1
@KatieK Polecenie sudo -suruchamia powłokę jako root. Strona podręcznika zawiera te szczegóły i wiele więcej. Dodam kilka słów, ponieważ twoje pytanie jest dobre, a wiele innych może również zastanawiać się, co robi.
bmike
@bike - Właśnie tego potrzebowałem - dzięki!
KatieK,
10

Zwykle robię to nieco inaczej niż inni tutaj opisani. Wyobraźmy sobie, że masz dwóch użytkowników. standardowy użytkownik: John admin user: kevin

Jeśli John jest zalogowany i chce działać jako użytkownik root (jako Kevin), oto jak to zrobić.

su kevin

kiedy zostaniesz o to poproszony, wpisz hasło Kevina

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

wprowadź ponownie hasło Kevina.

karmatyczna
źródło
Po zmianie użytkownika na Kevin, dlaczego potrzebujesz sudo?
cm2
Ponieważ Kevin nie jest rootem, wolno mu tylko rootować.
Xvolks,
4

Musisz użyć polecenia su(zmień użytkownika), aby zostać rootem, ale tylko root może stać się rootem, więc musisz użyć sudo(super-użytkownik zrobić). W związku z tym, należy wpisać: sudo su.

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

Jeśli nie korzystałeś wcześniej z roota, powinieneś być w pełni świadomy, że jeden niewłaściwy znak wpisany jako root usunie cały system operacyjny, w tym zdjęcia, e-maile i dokumenty finansowe. Zachowaj szczególną ostrożność i zawsze potrójnie czytaj to, co piszesz, zanim wejdziesz. W przeciwnym razie powodzenia!

wjl
źródło
1
był technikiem wsparcia systemu AIX od 3 lat ... 12 lat temu :) wiem kilka rzeczy, ale proste rzeczy zniknęły z mojej głowy :)
balexandre
Chciałem zamienić moją odpowiedź przyjazną instrukcją i sugestiami Google, ale szybko ją usunąłem po przeczytaniu twojego biografii. Witamy w Mac. Nadal nie mogę zmusić się do wpisania vm_stat po latach AIX. Uwielbiam aliasy muszli ;-)
bmike
Dlaczego warto korzystać sudo suzamiast sudo -s?
Chris Page
1
Wszystko, co widzę, to NCC-1701 lol
Shane Hsu
@ShaneHsu dobry! Podobał mi się twój komentarz ...
jmh
2

Uruchomiłem ten sam problem, próbując zainstalować ionic, wystarczy uruchomić to samo polecenie z sudo:

sudo npm install -g ionic cordova

System zażąda hasła bieżącego użytkownika. Podaj go, a będziesz mógł zainstalować jako administrator.

Maria Teresa Molero
źródło