Как запустить Visual Studio Code от имени пользователя root

41

Я недавно установил редактор кода Visual Studio. Я скачал 32-битный пакет .deb. Устанавливается и работает нормально, но когда я пытался сохранить файл в папке моего проекта, он возвращает разрешение отклонено. Итак, я перезапустить код с

sudo code .

и он возвращается

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.

Я искал, как указать альтернативный каталог пользовательских данных с --user-data-dirаргументом, но я не нашел много.

Итак, как мне запустить Visual Studio Code от имени root в Ubuntu 16.04?

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

edit2: каталог проекта: /var/www/project(я использую Apache с vhost)

wdarking
источник
6
почему бы просто не установить разрешения для папки вашего проекта, чтобы сохранить ее?
Странник
2
Я не понимаю, почему вы хотите запустить код от имени пользователя root; это потенциально опасно. Вы должны выяснить реальные причины, по которым вы не можете сохранить файл.
Edwinksl
1
Где находится папка вашего проекта
Nuwan Thisara
1
@Nuwan /var/www/project(я использую Apache с vhost)
wdarking
2
Возможный дубликат Как избежать использования sudo при работе в / var / www?
Дэвид Фёрстер

Ответы:

54

Однако запускать VScode от имени root (как и любого другого приложения) очень опасно, если вам абсолютно необходимо:

Вы должны указать каталог пользовательских данных, который будет использоваться при запуске против кода:

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

Затем из окна вы можете открыть папку вашего проекта

Опять же: это не рекомендуется. Повеселись.

Обновление май 2018

Для всех, кто спрашивает, почему это не рекомендуется, вы явно не понимаете, почему sudoвообще существует. Из этого вопроса AskUbuntu :

Это побеждает модель безопасности, которая существовала годами. Приложения должны запускаться с неадминистративной безопасностью (или как простые смертные), поэтому вам необходимо повысить их привилегии, чтобы изменить базовую систему. Например, вы не хотели бы, чтобы недавний сбой Rhythmbox уничтожил весь каталог / usr из-за ошибки. Или ту уязвимость, которая была только что опубликована в ProFTPD, чтобы позволить злоумышленнику получить оболочку ROOT.

В любой операционной системе просто рекомендуется запускать приложения на уровне пользователя и оставлять административные задачи пользователю root и только по мере необходимости.

Я не говорю, что вы никогда не должны использовать VSCode в качестве пользователя root (хотя его довольно легко избежать), я говорю, что вы должны быть осторожны, когда вы хотите это сделать, и знать риски.

Абсолютно лучшее, что нужно сделать, это сделать копию файла с ограниченным доступом, отредактировать его и скопировать обратно, когда вы абсолютно уверены, что он закончен.

Также для редактирования файлов, к которым у вашего пользователя нет прав доступа, я бы порекомендовал ответ Talha Junaid, который запрашивает разрешения каждый раз, когда вы хотите сохранить файл. Когда я написал этот ответ, подсказка для root-доступа не существовала.

zawata
источник
4
почему не рекомендуется запускать VScode от имени root? Как что-то изменить в хостах например? Мне понадобится разрешение root нет?
Цвиттерион
1
Спасибо, это работает: теперь у меня есть одно окно VSCode, работающее от имени root, и я хочу запустить другое окно vscode от имени root, это возможно?
RLaaa
1
Да, это возможно, откройте другой терминал.
Лукас DAW
3
@MarcoDufal Абсолютно нет. Это ужасная идея. Особенно при работе с файлами ОС вы абсолютно не должны устанавливать разрешение 777. Это означает, что все в системе, независимо от того, кто / что ее запустил или что разрешено делать, имеет право изменять этот набор файлов и папок. Самое большее, вы должны «владеть» файлами, чтобы иметь возможность редактировать их с разрешением, близким к 755.
Завата
3
@zawata ты совершенно прав! Пожалуйста, извините новичка. Спасибо за головы!
Марко Дюфаль
14

На всякий случай, если вы хотите внести изменения в один файл, я бы предпочел следующий подход.

  • Запустите vs-code от имени обычного пользователя.
  • внести изменения в файл
  • File -> Save или нажмите Ctrl + S
  • vs-код выскочит ошибка в правом нижнем углу, сказав

    Не удалось сохранить «grub»: недостаточно прав. Выберите «Повторить как администратор», чтобы повторить как администратор

    введите описание изображения здесь

  • Нажмите на Retry as Admin. Он запросит учетные данные администратора

    введите описание изображения здесь

  • Введите учетные данные и наслаждайтесь сохранением файлов с помощью vs-кода.

Талха Джунаид
источник
1
Есть ли способ сделать это без необходимости делать это каждый раз для каждого файла? У меня есть сотни файлов, в которые нужно внести изменения, и VS Code продолжает запрашивать мой пароль. Я готов бросить свой ноутбук к стене.
Джошуа Кеммерер
Тогда вы можете следовать принятому ответу, приведенному выше. askubuntu.com/a/820205/367228
Талха Джунаид
4

Вы должны дать разрешение вашей папке HTML.

попробуйте это в вашем терминале.

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

пожалуйста, убедитесь, что проверьте разрешение существующих файлов проекта и папки.

R_j
источник
9
Это самый глупый совет из когда-либо существовавших ... существуют ограниченные права, чтобы остановить злонамеренные процессы для модификации или разрушения вашей системы. Работайте над копией ограниченных файлов, а затем копируйте их на месте, когда закончите, или, что еще лучше, создайте сценарий установки, чтобы сделать это. Вы также можете добавить своего пользователя в группу, владеющую каталогами и файлами.
Сорен А
перейдите в папку вашего проекта и запустите sudo chmod -R 777 <имя_проекта_dir> и все готово
lilhamad
1
Перейдите в папку вашего проекта и запустите sudo chmod -R 777 <имя_проекта_dir> и все готово
lilhamad