Pregunta de autenticación de Sublime Text 3 al guardar el documento

11

Estoy usando Sublime Text para el desarrollo web. Cada vez que intento guardar los cambios (Ctrl + S), aparece la ventana de autenticación:

Se necesita autenticación para ejecutar '/ bin / cp' como superusuario

Obviamente, cuando ingreso la contraseña, Sublime guarda los cambios correctamente. Pero cuando presiono Cancelar , aparece otra ventana con un error:

Error: administrador_copia_archivo (/tmp/. Algunos_Archivo_Aquí, / var / www / Rest_Of_Path_Here) falló: Autorización fallida

Como soy bastante nuevo en Ubuntu, no sé cómo deshacerme de esa autorización emergente. Tengo todos los permisos para la carpeta / var / www .

SONGE
fuente
¿Está seguro de que su usuario tiene permisos de escritura /var/wwwsin convertirse en root (por ejemplo, usando sudo)?
David Bailey
@DavidBailey Tengo permisos de escritura /var/wwwpero no a las subcarpetas. Hemos puesto en práctica chownen /var/wwwpero cuando he comprobado los permisos en las subcarpetas, ex. /var/www/First_Site, Pertenece a www-data. Pensé que chownen una carpeta principal me daría permisos también a todas las subcarpetas / archivos que contiene.
SONGE

Respuestas:

6

No tienes permiso para escribir /var/www/Rest_Of_Path_Here. ST3 está intentando elevar su UID para escribir como el usuario correcto (de ahí el indicador de sudo). No sabía que podía hacer esto, pero lo he probado y funciona, así que ahí lo tienes.

Hay algunas maneras de solucionar esto:

  1. Permita que su usuario escriba los archivos directamente . Tantas opciones aquí:

    • chownlos archivos para que los poseas. Esto puede alterar las cosas que se ejecutan como otros usuarios que también pueden necesitar escribir, por ejemplo, un servidor web que se ejecuta como www-user. Es posible que también necesite cambiar lo que ejecutan.
    • Agregue su usuario al www-datagrupo y cambie la máscara de archivo para 774que los miembros del grupo puedan escribir / ejecutar.
    • Cambie la máscara de archivo para que otros usuarios puedan escribir (por ejemplo, 777) ... Pero esto es bastante arriesgado si ya hay algo malicioso en el servidor.
    • Use las ACL para permitir que su usuario escriba sin alterar el marco de permisos estándar.
  2. Cambie su flujo de trabajo para escribir en un sistema de control de versiones (por ejemplo, git) como sus usuarios, y luego haga que se ejecute un script mientras el otro usuario lo revisa. Esto conlleva otros beneficios.

  3. Ejecute ST3 como un usuario que puede escribir allí:

    sudo -u www-data subl /var/www/Rest_Of_Path_Here
    

    Esto es bastante más feo que simplemente arreglar los archivos.

Oli
fuente
Tienes razón. Solo tengo derechos sobre la carpeta / var / www , pero no sobre todas las subcarpetas que pertenecen www-data. Creo que la mejor solución aquí será agregar mi usuario al www-datagrupo.
SONGE
Solo para que todos lo sepan. Agregar mi usuario al www-datagrupo resolvió el problema. Solo tuve que reiniciar el sistema después de esto. Gracias @Oli.
SONGE
4

Tuve el mismo problema y pude resolverlo proporcionando al usuario el derecho a la carpeta particular que tuve que editar en Sublime text 3. Usé los siguientes comandos:

sudo chmod 775 -R projectname/   
sudo chown username -R projectname/

Creo que podría ser útil para otros en el futuro.

Isaac Shrestha
fuente
Muchas gracias
:)
0

Agregue su usuario al grupo de usuarios del administrador por uno de los siguientes, según la versión de Ubuntu que esté utilizando. Prueba ambos:

sudo usermod -a -G admin username

O

sudo usermod -a -G sudo username

Si ya está en el grupo de administración, intente con uno chownen la carpeta.

Sharad Gautam
fuente
¿Por qué? Hay muchas sugerencias de que ya están en el grupo sudo / admin (funciona cuando ingresan su contraseña).
Oli
Quizás chownlo haga @Oli
Sharad Gautam
0

Tengo el mismo problema, intento editar el archivo de mi servidor apache con texto sublime y no quiero estropear el permiso de mi servidor web. Cambiar sus archivos g + w y poner a su usuario en el grupo www-data no es una idea muy segura.

Lo que recomendaría es usar el complemento SFTP para texto sublime:

  • duplicar el archivo de su servidor web a una carpeta que pertenece a su propio usuario
  • configurar el complemento SFTP con:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

No proporcione una contraseña en la configuración, ya que este también es un gran agujero de seguridad.

Sublime-text le pedirá la contraseña una vez y luego la recordará para la sesión. Al guardar cada archivo, abrirá una sesión sftp en localhost y escribirá el archivo en el disco con el usuario apropiado

Pascal Fournier
fuente
0

Realice lo siguiente en su terminal Linux / Unix:

sudo chmod -R 777 project-name
sudo chown user-name project-name

Probé -R 775y no funcionó, también lo -R 777hizo el truco, aunque he otorgado permisos de escritura a todos los proyectos.

Jose Mhlanga
fuente