Как запустить код Visual Studio от имени root

Недавно я установил редактор кода 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?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    enter image description here

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

    enter image description here

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

чтобы открыть vs-code от имени root, откройте терминал и:

sudo code /directory-to-open --user-data-dir='.' --no-sandbox

убедитесь, что вы тоже это проверили: https://stackoverflow.com/a/68637450/10606346

Предоставление привилегий root для VS Code или любого другого приложения пользовательского уровня - не самая лучшая идея. Вместо того, чтобы предоставлять привилегии root для VS Code, гораздо лучшая идея - предоставить разрешение вашей папке проекта.

Вы можете использовать sudo chmod -R 777, но, честно говоря, я бы не рекомендовал это, потому что это дает полный доступ к каталогу вашего проекта всем пользователям на компьютере.

Вы можете использовать chown в каталоге проекта, чтобы владеть им только для себя

cd /locationsudo chown your_username your_project_directory

Пример

допустим, у меня есть каталог под названием project1 в моем /var/opt местоположение и мое имя пользователя mir

cd /var/optsudo chown mir project1

Теперь запустите свой VS-код и попробуйте создать какой-нибудь файл, изменить и сохранить его, вы больше не будете запрашивать никаких разрешений root

Однако, если вы уже создали какой-либо файл перед применением chown, не забудьте также изменить их разрешение

sudo chown your_username your_project_directory/your_file_name

Пример

sudo chown mir project1/file1.txt

почему бы просто не установить разрешения для вашей папки проекта, чтобы разрешить ее сохранение?

Возможный дубликат Как избежать использования sudo при работе в /var/www?

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

@edwinksl проблема, вероятно, возникает из-за целей установки cmake, которые, будучи встроенными в vscode, хотят записывать файлы в различные папки. sudo-ing - это def. плохая идея, но вы не можете ожидать, что люди начнут читать сценарии сборки, чтобы узнать, что им нужно сделать. сборка внутри контейнера - это одно из решений, но оно не идеально.

Если Visual Studio" - это графическое приложение (нетекстовое), вы должны использовать "gksu" вместо "sudo.