Cómo ejecutar Visual Studio Code como root

41

Recientemente instalé el editor de Visual Studio Code. Descargué el paquete de 32 bits .deb. Instalado y ejecutado normalmente, pero cuando intenté guardar un archivo en la carpeta de mi proyecto, devuelve el permiso denegado. Entonces, vuelvo a ejecutar el código con

sudo code .

y vuelve

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.

Busqué cómo especificar un directorio de datos de usuario alternativo con el --user-data-dirargumento, pero no encontré mucho.

Entonces, ¿cómo ejecuto Visual Studio Code como root en Ubuntu 16.04?

editar: preferiría una solución que evite cambiar los permisos del directorio.

edit2: directorio del proyecto: /var/www/project(estoy usando Apache con vhost)

wdarking
fuente
66
¿por qué no solo establece los permisos en la carpeta de su proyecto para permitir que se guarde?
TheWanderer
2
No entiendo por qué quieres ejecutar código como root; Esto es potencialmente peligroso. Debes descubrir las razones reales por las que no puedes guardar el archivo.
edwinksl
1
¿Dónde está la carpeta de su proyecto
Nuwan Thisara
1
@Nuwan /var/www/project(estoy usando Apache con vhost)
wdarking

Respuestas:

54

Sin embargo, es muy peligroso ejecutar VScode como root (como lo es cualquier otra aplicación), en caso de que necesite:

Debe especificar el directorio de datos del usuario que se usará al ejecutar el código vs:

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

Luego, desde la ventana, puede abrir la carpeta de su proyecto

De nuevo: esto no es recomendable. Que te diviertas.

Actualización de mayo de 2018

Para todos los que preguntan por qué esto no se recomienda, claramente no entienden por qué sudoexiste. De esta pregunta de AskUbuntu :

Derrota el modelo de seguridad que existe desde hace años. Las aplicaciones deben ejecutarse con seguridad no administrativa (o como simples mortales), por lo que debe elevar sus privilegios para modificar el sistema subyacente. Por ejemplo, no querrá que el bloqueo reciente de Rhythmbox borre todo su directorio / usr debido a un error. O esa vulnerabilidad que acaba de publicarse en ProFTPD para permitir que un atacante obtenga un shell ROOT.

Es una buena práctica en cualquier sistema operativo ejecutar sus aplicaciones a nivel de usuario y dejar las tareas administrativas al usuario raíz, y solo según las necesidades.

No estoy diciendo que nunca debas usar VSCode como root (aunque es bastante fácil de evitar). Estoy diciendo que debes tener cuidado cuando quieras hacerlo y conocer los riesgos.

Lo mejor que puede hacer es hacer una copia de un archivo restringido, editarlo y copiarlo cuando esté absolutamente seguro de que está terminado.

También para editar archivos para los que su usuario no tiene permisos, ahora recomendaría la respuesta de Talha Junaid que solicita permisos cada vez que desea guardar un archivo. La solicitud de acceso a la raíz no existía cuando escribí esta respuesta.

zawata
fuente
44
¿Por qué no se recomienda ejecutar VScode como root? ¿Cómo cambiar algo en los hosts, por ejemplo? Necesitaré permiso de root no?
zwitterion
1
Gracias, está funcionando: ahora tengo una ventana VSCode ejecutándose como root y quiero iniciar otra ventana vscode como root, ¿es eso posible?
RLaaa
1
Sí, es posible, abra otra terminal.
Lucas DAW
3
@MarcoDufal Absolutamente no. Esta es una idea horrible. Especialmente cuando trabaje con archivos del sistema operativo, no debe establecer el permiso en 777. Eso significa que todo en el sistema, independientemente de quién / qué lo inició o qué está permitido hacer, tiene permiso para modificar ese conjunto de archivos y carpetas. Como máximo, debe "Poseer" los archivos para poder editarlos con algo más cercano a los 755 permisos.
zawata
3
@zawata tienes toda la razón! Por favor, disculpe a un novato. ¡Gracias por el aviso!
Marco Dufal
14

En caso de que desee realizar cambios en un solo archivo, preferiría el siguiente enfoque.

  • Ejecute vs-code como usuario normal.
  • hacer cambios en el archivo
  • File -> Save o presione Ctrl + S
  • vs-code aparecerá un error emergente en la esquina inferior derecha diciendo

    Error al guardar 'grub': permisos insuficientes. Seleccione 'Reintentar como administrador' para volver a intentar como administrador

    ingrese la descripción de la imagen aquí

  • Haga clic en Retry as Admin. Solicitará credenciales de administrador

    ingrese la descripción de la imagen aquí

  • Ingrese las credenciales y disfrute guardando archivos con código vs.

Talha Junaid
fuente
1
¿Hay alguna manera de hacer esto sin tener que hacer esto cada vez para cada archivo? Tengo cientos de archivos a los que necesito hacer cambios y VS Code sigue pidiéndome mi contraseña. Estoy a punto de tirar mi computadora portátil contra la pared.
Joshua Kemmerer
Luego puede seguir la respuesta aceptada dada anteriormente. askubuntu.com/a/820205/367228
Talha Junaid
4

Tienes que dar permiso a tu carpeta html.

Pruébalo en tu terminal.

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

asegúrese de verificar el permiso de los archivos y carpetas de proyectos existentes.

R_J
fuente
99
Este es el consejo más estúpido de todos ... los derechos restringidos están en su lugar para detener procesos maliciosos para modificar o destruir su sistema. Trabaje en una copia de los archivos restringidos y luego cópielos en su lugar cuando haya terminado, o incluso mejor, cree un script de instalación para hacerlo. También puede agregar su usuario al grupo propietario de los directorios y archivos.
Soren A
cd a su carpeta de proyecto y ejecute sudo chmod -R 777 <project_dir_name> y listo
lilhamad
1
cd a su carpeta de proyecto y ejecute sudo chmod -R 777 <project_dir_name> y listo
lilhamad