80 votes

Comment exécuter Visual Studio Code en tant que root

J'ai récemment installé l'éditeur Visual Studio Code. J'ai téléchargé le paquet .deb 32bit. Je l'ai installé et exécuté normalement, mais lorsque j'ai essayé d'enregistrer un fichier dans le dossier de mon projet, il renvoie une permission refusée. J'ai donc ré-exécuté le code avec

sudo code .

et il retourne

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.

J'ai cherché comment spécifier un répertoire de données utilisateur alternatif avec l'option --user-data-dir mais je n'ai pas trouvé grand-chose.

Alors, comment puis-je exécuter Visual Studio Code en tant que root sous Ubuntu 16.04 ?

éditer : Je préférerais une solution qui évite de modifier les permissions des répertoires.

edit2 : répertoire du projet : /var/www/project (J'utilise Apache avec vhost)

96voto

zawata Points 1084

Il est très dangereux d'exécuter VScode en tant que root (comme n'importe quelle autre application) cependant, si vous en avez absolument besoin :

Vous devez spécifier le répertoire de données utilisateur à utiliser lors de l'exécution de vs code :

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

Ensuite, à partir de cette fenêtre, vous pouvez ouvrir le dossier de votre projet.

Encore une fois : Ce n'est pas recommandé. Amusez-vous bien.

Mise à jour : mai 2018

Pour tous ceux qui demandent pourquoi ce n'est pas recommandé, vous ne comprenez manifestement pas pourquoi sudo existe même. De cette question de AskUbuntu :

Cela va à l'encontre du modèle de sécurité mis en place depuis des années. Les applications sont censées être exécutées avec une sécurité non administrative (ou en tant que simples mortels), de sorte que vous devez élever leurs privilèges pour modifier le système sous-jacent. Par exemple, vous ne voudriez pas que le récent crash de Rhythmbox efface tout votre répertoire /usr à cause d'un bug. Ou cette vulnérabilité qui vient d'être publiée dans ProFTPD pour permettre à un attaquant d'obtenir un ROOT Shell.

La bonne pratique, quel que soit le système d'exploitation, est d'exécuter vos applications au niveau de l'utilisateur et de laisser les tâches administratives à l'utilisateur root, et uniquement en fonction des besoins.

Je ne dis pas que vous ne devez jamais utiliser VSCode en tant que root (bien qu'il soit assez facile d'éviter de le faire), je dis que vous devez être prudent lorsque vous voulez le faire et connaître les risques.

La meilleure chose à faire est de faire une copie d'un fichier à accès restreint, de le modifier et de le recopier lorsque vous êtes absolument sûr qu'il est terminé.

De même, pour éditer des fichiers pour lesquels votre utilisateur n'a pas de droits, je recommande maintenant la réponse de Talha Junaid qui demande les droits à chaque fois que vous voulez enregistrer un fichier. La demande d'accès root n'existait pas lorsque j'ai écrit cette réponse.

31voto

Talha Junaid Points 473

Au cas où vous voudriez apporter des modifications à un seul fichier, je préférerais l'approche suivante.

  • Exécuter vs-code en tant qu'utilisateur régulier.

  • apporter des modifications au fichier

  • File -> Save ou appuyez sur Ctrl + S

  • vs-code fera apparaître une erreur dans le coin inférieur droit disant

    Échec de la sauvegarde de 'Grub' : Autorisations insuffisantes. Sélectionnez 'Retry as Admin' pour réessayer en tant qu'administrateur

    enter image description here

  • Cliquez sur Retry as Admin . Il demandera les informations d'identification de l'administrateur

    enter image description here

  • Entrez les informations d'identification et profitez de l'enregistrement des fichiers avec vs-code.

7voto

sina Points 201

Pour ouvrir vs-code en tant que root, ouvrez le terminal et :

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

Assurez-vous de vérifier cela aussi : https://stackoverflow.com/a/68637450/10606346

-2voto

Mir Rahed Uddin Points 553

Donner le privilège root au code VS ou à toute autre application de niveau utilisateur n'est pas une bonne idée. Au lieu de donner le privilège root au code VS, donner la permission au dossier de votre projet est une bien meilleure idée.

Vous pouvez utiliser sudo chmod -R 777 mais honnêtement, je ne le recommande pas, car il donne l'accès complet au répertoire de votre projet à tous les utilisateurs de la machine.

Vous pouvez utiliser chown sur le répertoire du projet pour le posséder uniquement pour vous-même

cd /location

sudo chown your_username your_project_directory

Exemple

disons que j'ai un répertoire appelé project1 dans mon /var/opt et mon nom d'utilisateur est mir

cd /var/opt

sudo chown mir project1

Maintenant, lancez votre code VS et essayez de créer un fichier, modifiez-le et sauvegardez-le, vous ne demanderez plus aucune autorisation root.

Cependant, si vous avez déjà créé un fichier avant d'appliquer le programme chown N'oubliez pas de modifier également leur autorisation.

sudo chown your_username your_project_directory/your_file_name

Exemple

sudo chown mir project1/file1.txt

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X