Permiso de un archivo .desktop

10

Necesita alguna aclaración sobre los permisos de los .desktoparchivos. Puedo ver que todos los .desktoparchivos en /usr/share/applications/propiedad de root tienen permiso,

-rw-r--r--

También examples.desktopen $HOMEpropiedad del usuario tiene el mismo permiso. Todos esos funcionan correctamente.

Pero cuando voy a crear un .desktoparchivo personalizado con el mismo permiso, aparece el siguiente mensaje de error,

Lanzador de
aplicaciones no confiable El lanzador de aplicaciones "myapp.desktop" no se ha marcado como confiable. Si no conoce el origen de este archivo, iniciarlo puede no ser seguro.

Pero agregar el permiso de ejecución le permite ejecutarse sin ningún problema.

P: ¿Por qué los .desktoparchivos personalizados necesitan tener +xpermisos para ejecutarse o cómo algunos .desktoparchivos pueden ejecutarse sin permiso de ejecución? ¿Es posible ejecutar un .desktoparchivo personalizado sin permiso de ejecución?

souravc
fuente
Relacionado , pero no responde la pregunta.
Olli

Respuestas:

12

Esto es de la política de seguridad de Ubuntu :

Bit de permiso de ejecución requerido

  • Las aplicaciones, incluidos los escritorios y los shells, no deben ejecutar código ejecutable desde archivos cuando ambos son:

    • sin el bit ejecutable
    • ubicado en el directorio de inicio de un usuario o directorio temporal.
  • Esto incluye archivos * .desktop, * .jar y * .exe.

  • Nada puede proporcionar una solución alternativa para ejecutarlos de todos modos automáticamente ...

Entonces, sí, de acuerdo con esta política, debería ser posible ejecutar un archivo .desktop sin el conjunto de bits ejecutable. De acuerdo con esta política sólo se tendría que mover ese archivo fuera de las /home/y los /tmp/directorios y luego se puede poner en marcha sin el bit ejecutable. Esto es en teoría / de acuerdo con la política.

En la práctica, nautilus le permitirá iniciar archivos .desktop sin el bit ejecutable establecido desde los directorios XDG_DATA_DIR y desde el ~/.gnome2/directorio. Puede verificar XDG_DATA_DIRS con el echo $XDG_DATA_DIRScomando. Entonces, si coloca su archivo .desktop en un XDG_DATA_DIR o en ~/.gnome2/, podrá iniciarlo desde nautilus sin el conjunto de bits ejecutable. Al menos en 12.04 funciona así. ¿Cómo está esto en línea con la política antes mencionada? No lo sé.


Para lo examples.desktopmencionado en la pregunta: ese archivo .desktop es un tipo diferente de archivo .desktop. Es un "Enlace", no quiere ejecutar nada, básicamente funciona como un enlace simbólico. Este tipo de archivos .desktop funcionan en todas partes.

halconero
fuente
1
Gracias por tu respuesta. Cubre casi todo lo que quería saber. Solo dos cosas más. [i] También estoy usando 12.04, pero un .desktoparchivo externo /homesin bit ejecutable no me funcionó. [ii] ¿Puedo agregar alguna carpeta $XDG_DATA_DIRS? Intenté export XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/sin éxito.
souravc
@souravc [i] Como dije, de acuerdo con la política, debería funcionar fuera del /home/directorio. Como escribí, en la práctica, nautilus se comporta de manera diferente e incluso ejecuta algunos .desktop desde un directorio de inicio ( ~/.gnome2/) pero no se ejecuta desde todos los directorios fuera de / home, solo desde XDG_DATA_DIRS. Así que creo que el comportamiento de nautilus no está perfectamente en línea con la política. [ii] Sobre cómo agregar un directorio, consulte esta publicación de blog .
cetrero
1

Puede crear y colocar el .desktoparchivo ~/.local/share/applications, luego aparecerá en el guión / menú / lo que sea.

Tendrá que verse más o menos así:

[Desktop Entry]
Name=Files
Comment=Launch Nemo File manager
Keywords=folder;manager;explore;disk;filesystem;
Exec=nemo %U
Icon=system-file-manager
Terminal=false
Type=Application
StartupNotify=true
OnlyShowIn=GNOME;Unity;
Categories=GNOME;GTK;Utility;Core;
NoDisplay=false

Esto se debe a que los archivos ~/.local/share/applicationsfuncionan igual que los archivos /usr/share/applications, los cuales funcionan bien en la mayoría de los sistemas sin permisos ejecutables, también cuando son propiedad de un usuario que no sea root. Sin embargo, esto no siempre parece ser el caso.

Para realmente hacer clic en el archivo y luego abrirlo, necesitará permisos ejecutables.

Wilf
fuente
1
@ downvoter por favor deje un comentario para la crítica constructiva. @wilf Creo que tu respuesta no responde exactamente mi pregunta. No podría ejecutar un .desktoparchivo a ~/.local/share/applicationsmenos que tenga el permiso de ejecución.
souravc
Sé que esto no es una respuesta como tal. Nunca he tenido el problema, acabo de crear archivos de texto en Gedit con contenido similar al anterior, cerrar sesión e iniciar sesión, y funciona bien ... Lo he hecho bien en Ubuntu 10, 12.04, 13.04, 13.10 y cualquier versión de Fedora desde Fedora 12. Algunos también en Debian. Comprobación de muestra que en su mayoría tienen los permisos -rw-r--r--....
Wilf
0

Parece que no, no puedes sin modificar GNOME. Hay un informe de error de launchpad , que se confirma, pero no se actúa, sobre este problema exacto.

Cuando crea un .desktoparchivo personalizado /usr/share/applications/con la raíz del propietario, no requiere permiso de ejecución.

Olli
fuente
Este informe de error es muy antiguo (en Ubuntu 10.04). No encontré ningún informe de este tipo para Ubuntu 12.04. ¿Encontraste algo?
souravc