web-dev-qa-db-fra.com

Permission d'un fichier .desktop

Besoin de précisions sur les autorisations des fichiers .desktop. Je peux voir tous les fichiers .desktop dans /usr/share/applications/ appartenant à la racine ayant la permission,

-rw-r--r--

aussi examples.desktop à $HOME appartenant à l'utilisateur a la même permission. Tous fonctionnent correctement.

Mais lorsque je vais créer un fichier personnalisé .desktop ayant la même autorisation, le message d'erreur suivant est lancé:

lanceur d'applications non fiables
Le lanceur d'application "myapp.desktop" n'a pas été marqué comme fiable. Si vous ne connaissez pas la source de ce fichier, son lancement peut être dangereux.

Mais ajouter l’autorisation d’exécution, c’est lui permettre de s’exécuter sans problème.

Q: Pourquoi les fichiers personnalisés .desktop doivent-ils disposer d'autorisations +x ou comment certains fichiers .desktop peuvent-ils s'exécuter sans autorisation d'exécution? Est-il possible d'exécuter un fichier personnalisé .desktop sans autorisation d'exécution?

9
souravc

Cela vient de politique de sécurité d'Ubunt :

Bit d'exécution-autorisation requis

  • Les applications, y compris les bureaux et les shells, ne doivent pas exécuter de code exécutable à partir de fichiers lorsqu'elles sont à la fois:

    • manque le bit exécutable
    • situé dans le répertoire de base ou le répertoire temporaire d'un utilisateur.
  • Cela inclut les fichiers * .desktop, * .jar et * .exe.

  • Rien ne peut fournir une solution de contournement pour les exécuter de toute façon automatiquement ...

Donc, oui, selon cette politique, il devrait être possible d'exécuter un fichier .desktop sans définir le bit exécutable. Selon cette politique, il vous suffirait de déplacer ce fichier des répertoires /home/ et /tmp/ pour pouvoir le lancer sans le bit exécutable. Ceci est en théorie/selon la politique.

En pratique, nautilus vous permettra de lancer des fichiers .desktop sans le bit d’exécutable défini à partir des répertoires XDG_DATA_DIR et du répertoire ~/.gnome2/. Vous pouvez vérifier XDG_DATA_DIRS avec la commande echo $XDG_DATA_DIRS. Donc, si vous placez votre fichier .desktop dans un XDG_DATA_DIR ou dans ~/.gnome2/, vous pourrez le lancer à partir de Nautilus sans définir le bit d’exécutable. Au moins sur 12.04 cela fonctionne comme ça. Comment cela est-il conforme à la politique susmentionnée, je ne le sais pas.


Pour le examples.desktop mentionné dans la question: ce fichier .desktop est un type de fichier .desktop différent. C'est un "lien", il ne veut rien exécuter, il fonctionne essentiellement comme un lien symbolique. Ces types de fichiers .desktop fonctionnent partout.

12
falconer

Vous pouvez créer et placer le fichier .desktop dans ~/.local/share/applications - il apparaîtra ensuite dans le tiret/menu/peu importe.

Cela devra ressembler à quelque chose comme ça:

[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

En effet, les fichiers de ~/.local/share/applications fonctionnent de la même manière que ceux de /usr/share/applications - les deux sur la plupart des systèmes fonctionnent correctement sans autorisations d'exécution, même s'ils appartiennent à un utilisateur autre que root. Cela ne semble toutefois pas toujours être le cas.

Pour que le fichier soit cliqué et ensuite ouvert, des autorisations exécutables sont nécessaires.

1
Wilf

Il semble que non, vous ne pouvez pas sans modifier GNOME. Il y a un rapport de bogue du tableau de bord , qui est confirmé, mais n'est pas traité, sur cette question exacte.

Lorsque vous créez un fichier personnalisé .desktop sous /usr/share/applications/ avec le propriétaire root, il ne nécessite pas d'autorisation d'exécution.

0
Olli