Jak uruchomić Visual Studio Code jako root

40

Niedawno zainstalowałem edytor Visual Studio Code. Pobrałem 32-bitowy pakiet .deb. Zainstalowano i uruchomiłem normalnie, ale gdy próbowałem zapisać plik w folderze projektu, uprawnienia są odrzucane. Ponownie uruchamiam kod za pomocą

sudo code .

i powraca

It is recommended to start vscode as a normal user.
To run as root, you must specify an alternate user data directory with the --user-data-dir argument.

Szukałem sposobu podania alternatywnego katalogu danych użytkownika z --user-data-dirargumentem, ale nie znalazłem wiele.

Jak więc uruchomić program Visual Studio Code jako root w systemie Ubuntu 16.04?

edycja: Wolę rozwiązanie, które pozwala uniknąć zmiany uprawnień do katalogu.

edit2: katalog projektu: /var/www/project(Używam Apache z vhost)

wdarking
źródło
6
dlaczego nie po prostu ustawić uprawnienia do folderu projektu, aby umożliwić mu zapisywanie?
TheWanderer
2
Nie rozumiem, dlaczego chcesz uruchamiać kod jako root; jest to potencjalnie niebezpieczne. Powinieneś dowiedzieć się, dlaczego nie możesz zapisać pliku.
edwinksl
1
Gdzie jest folder twojego projektu
Nuwan Thisara,
1
@Nuwan /var/www/project(używam Apache z
vhostem

Odpowiedzi:

53

Uruchamianie VScode jako root jest bardzo niebezpieczne (jak każda inna aplikacja), jeśli jednak absolutnie musisz:

Musisz określić katalog danych użytkownika, który będzie używany podczas uruchamiania vs kod:

sudo code --user-data-dir="~/.vscode-root"

Następnie z okna możesz otworzyć folder projektu

Ponownie: nie jest to zalecane. Baw się dobrze.

Aktualizacja maja 2018 r

Dla wszystkich pytających, dlaczego nie jest to zalecane, wyraźnie nie rozumiesz, dlaczego w sudoogóle istnieje. Z tego pytania AskUbuntu :

Pokonuje model bezpieczeństwa, który istnieje od lat. Aplikacje mają być uruchamiane z zabezpieczeniami nieadministracyjnymi (lub zwykłymi śmiertelnikami), więc musisz podnieść ich uprawnienia do modyfikowania systemu bazowego. Na przykład nie chcesz, aby niedawna awaria Rhythmbox zniszczyła cały katalog / usr z powodu błędu. Lub ta luka, która została właśnie opublikowana w ProFTPD, aby umożliwić osobie atakującej uzyskanie powłoki ROOT.

Dobrą praktyką w każdym systemie operacyjnym jest uruchamianie aplikacji na poziomie użytkownika i pozostawienie zadań administracyjnych użytkownikowi root i tylko na żądanie.

Nie mówię, że nigdy nie powinieneś używać VSCode jako root (chociaż dość łatwo tego uniknąć). Mówię, że powinieneś być ostrożny, kiedy chcesz to zrobić i znać ryzyko.

Absolutnie najlepszą rzeczą do zrobienia jest zrobienie kopii pliku z ograniczeniami, edycja go i skopiowanie z powrotem, gdy masz absolutną pewność, że jest skończony.

Również do edycji plików, do których twój użytkownik nie ma uprawnień, poleciłbym teraz odpowiedź Talha Junaid, która prosi o uprawnienia za każdym razem, gdy chcesz zapisać plik. Pytanie o dostęp do roota nie istniało, kiedy napisałem tę odpowiedź.

zawata
źródło
4
dlaczego nie zaleca się uruchamiania VScode jako root? Jak na przykład zmienić coś w hostach? Potrzebuję uprawnień roota, prawda?
amfoteryczny
1
Dzięki, że działa: teraz mam jedno okno VSCode działające jako root i chcę uruchomić inne okno vscode jako root, czy to możliwe?
RLaaa
1
Tak, to możliwe, otwórz inny terminal.
Lucas DAW,
3
@MarcoDufal Absolutnie nie. To okropny pomysł. Zwłaszcza podczas pracy z plikami systemu operacyjnego absolutnie nie należy ustawiać uprawnienia na 777. Oznacza to, że wszystko w systemie, niezależnie od tego, kto / co go uruchomiło lub co jest dozwolone, ma uprawnienia do modyfikowania tego zestawu plików i folderów. Co najwyżej powinieneś „posiadać” pliki, aby móc je edytować z czymś zbliżonym do uprawnień 755.
zawata
3
@zawata masz całkowitą rację! Proszę wybaczyć nowicjuszowi. Dzięki za heads-up!
Marco Dufal
14

Na wypadek, gdybyś chciał wprowadzić zmiany w jednym pliku, wolałbym następujące podejście.

  • Uruchom vs-code jako zwykły użytkownik.
  • dokonać zmian w pliku
  • File -> Save lub naciśnij Ctrl + S
  • vs-code wyświetli komunikat o błędzie w prawym dolnym rogu

    Nie udało się zapisać „grub”: niewystarczające uprawnienia. Wybierz „Spróbuj ponownie jako administrator”, aby spróbować ponownie jako administrator

    wprowadź opis zdjęcia tutaj

  • Kliknij na Retry as Admin. Poprosi o podanie poświadczeń administratora

    wprowadź opis zdjęcia tutaj

  • Wprowadź dane uwierzytelniające i ciesz się zapisywaniem plików za pomocą vs-code.

Talha Junaid
źródło
1
Czy można to zrobić bez konieczności robienia tego za każdym razem dla każdego pliku? Mam setki plików, w których muszę wprowadzić zmiany, a VS Code wciąż pyta o moje hasło. Jestem gotowy rzucić laptopa o ścianę.
Joshua Kemmerer
Następnie możesz zastosować się do zaakceptowanej odpowiedzi podanej powyżej. askubuntu.com/a/820205/367228
Talha Junaid
4

Musisz wyrazić zgodę na swój folder HTML.

spróbuj w swoim terminalu.

sudo chmod -R 777 /var/www/html/

upewnij się, sprawdź uprawnienia istniejących plików projektu i folderu.

R_J
źródło
9
To najgłupsza rada, jaka kiedykolwiek ... istnieją ograniczone prawa, aby zatrzymać złośliwe procesy w celu modyfikacji lub zniszczenia systemu. Pracuj nad kopią plików zastrzeżonych, a następnie po zakończeniu skopiuj je na miejsce, a nawet lepiej, stwórz skrypt instalacyjny, aby to zrobić. Możesz także dodać użytkownika do grupy będącej właścicielem katalogów i plików.
Soren A
cd do folderu projektu i uruchom sudo chmod -R 777 <katalog_projektu> i gotowe
lilhamad
1
cd do folderu projektu i uruchom sudo chmod -R 777 <nazwa_katalogu projektu> i gotowe
lilhamad