Comment exécuter Visual Studio Code en tant que root

41

J'ai récemment installé l'éditeur de code Visual Studio. J'ai téléchargé le package .deb 32bit. Installé et exécuté normalement, mais lorsque j'ai essayé d'enregistrer un fichier dans le dossier de mon projet, l'autorisation renvoyée a été renvoyée. Donc, je relance le code avec

sudo code .

et ça revient

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 d'utilisateur alternatif avec l' --user-data-dirargument, mais je n'ai pas trouvé grand chose.

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

edit: Je préférerais une solution qui évite de modifier les autorisations de répertoire.

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

wdarking
la source
6
pourquoi ne pas simplement définir les autorisations sur votre dossier de projet pour lui permettre de sauvegarder?
TheWanderer
2
Je ne comprends pas pourquoi vous voulez exécuter le code en tant que root; c'est potentiellement dangereux. Vous devriez comprendre les vraies raisons pour lesquelles vous ne pouvez pas enregistrer le fichier.
Edwinksl
1
Où se trouve votre dossier de projet
Nuwan Thisara
1
@Nuwan /var/www/project( j'utilise Apache avec vhost)
mercredi

Réponses:

54

Il est très dangereux d’exécuter VScode en tant que root (comme c’est le cas de toute autre application). Toutefois, vous devez absolument:

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, depuis la fenêtre, vous pouvez ouvrir votre dossier de projet

Encore une fois: ce n'est pas recommandé. S'amuser.

Mise à jour de mai 2018

Pour tous ceux qui demandent pourquoi cela n'est pas recommandé, vous ne comprenez clairement pas pourquoi sudomême existe. De cette question AskUbuntu :

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

Il est recommandé, sur tout système d'exploitation, d'exécuter vos applications au niveau utilisateur et de laisser les tâches administratives à l'utilisateur root, uniquement au besoin.

Je ne dis pas que vous ne devriez jamais utiliser VSCode en tant que racine (bien que ce soit assez facile à éviter), je vous dis que vous devez faire attention lorsque vous le souhaitez et connaître les risques.

La meilleure chose à faire est de copier un fichier restreint, de le modifier et de le copier à nouveau lorsque vous êtes absolument certain qu'il est terminé.

Aussi, pour éditer des fichiers sur lesquels votre utilisateur n'a pas d'autorisations, je recommanderais maintenant la réponse de Talha Junaid qui demande des autorisations à chaque fois que vous souhaitez enregistrer un fichier. L'invite pour l'accès root n'existait pas lorsque j'ai écrit cette réponse.

zawata
la source
4
pourquoi il n'est pas recommandé d'exécuter VScode en tant que root? Comment changer quelque chose chez les hôtes par exemple? Je vais avoir besoin de la permission de la racine n'est pas?
zwitterion
1
Merci, cela fonctionne: maintenant, une fenêtre VSCode est exécutée en tant que root et je souhaite démarrer une autre fenêtre vscode en tant que root, est-ce possible?
RLaaa
1
Oui c'est possible, ouvrez un autre terminal.
Lucas DAW
3
@MarcoDufal Absolument pas. C'est une idée horrible. Surtout lorsque vous travaillez avec des fichiers de système d'exploitation, vous ne devez absolument pas définir l'autorisation sur 777. Cela signifie que tout ce qui se trouve sur le système, indépendamment de qui / ce qui l'a démarré ou de ce qu'il est autorisé à faire, est autorisé à modifier cet ensemble de fichiers et de dossiers. Tout au plus, vous devriez "posséder" les fichiers pour pouvoir les éditer avec quelque chose de plus proche des 755 autorisations.
Zawata
3
@ zawata vous avez parfaitement raison! S'il vous plaît excuser un novice. Merci pour l'information!
Marco Dufal
14

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

  • Exécutez vs-code en tant qu'utilisateur régulier.
  • apporter des modifications au fichier
  • File -> Save ou appuyez sur Ctrl + S
  • vs-code apparaîtra erreur dans le coin en bas à droite en disant

    Échec de l'enregistrement de 'grub': autorisations insuffisantes. Sélectionnez 'Réessayer en tant qu'administrateur' pour réessayer en tant qu'administrateur.

    entrez la description de l'image ici

  • Cliquez sur Retry as Admin. Il demandera des informations d'identification d'administrateur

    entrez la description de l'image ici

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

Talha Junaid
la source
1
Est-il possible de le faire sans avoir à le faire à chaque fois pour chaque fichier? J'ai des centaines de fichiers à modifier et VS Code continue à me demander mon mot de passe. Je suis sur le point de jeter mon ordinateur portable contre le mur.
Joshua Kemmerer
Ensuite, vous pouvez suivre la réponse acceptée donnée ci-dessus. askubuntu.com/a/820205/367228
Talha Junaid
4

Vous devez donner la permission à votre dossier HTML.

essayez-le dans votre terminal.

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

assurez-vous de vérifier l'autorisation des fichiers et du dossier de projet existants.

R_J
la source
9
C'est le conseil le plus stupide de tous les temps ... des droits restreints sont en place pour empêcher les processus malveillants de modifier ou de détruire votre système. Travaillez sur une copie des fichiers restreints, puis copiez-les sur place à la fin, ou mieux, créez un script d'installation pour le faire. Vous pouvez également ajouter votre utilisateur au groupe possédant les répertoires et les fichiers.
Soren Un
Allez dans le dossier de votre projet et lancez sudo chmod -R 777 <nom_rép_projet> et c'est fini
lilhamad
1
Allez dans le dossier de votre projet et exécutez sudo chmod -R 777 <nom_rép_projet> et effectuez
lilhamad le