Autorizzazione di un file .desktop


10

Hai bisogno di alcuni chiarimenti sulle autorizzazioni dei .desktopfile. Vedo che tutti i .desktopfile di /usr/share/applications/proprietà di root sono autorizzati,

-rw-r--r--

anche examples.desktopdi $HOMEproprietà dell'utente ha la stessa autorizzazione. Tutti quelli funzionano correttamente.

Ma quando ho intenzione di creare un .desktopfile personalizzato con la stessa autorizzazione, viene visualizzato il seguente messaggio di errore,

Programma di avvio
dell'applicazione non attendibile Il programma di avvio dell'applicazione "myapp.desktop" non è stato contrassegnato come attendibile. Se non si conosce l'origine di questo file, l'avvio potrebbe non essere sicuro.

Ma l'aggiunta dell'autorizzazione di esecuzione ne consente l'esecuzione senza alcun problema.

D: Perché i .desktopfile personalizzati devono disporre delle +xautorizzazioni per essere eseguiti o come alcuni .desktopfile possono essere eseguiti senza autorizzazione di esecuzione? È possibile eseguire un .desktopfile personalizzato senza autorizzazione di esecuzione?


Correlato , ma non risponde alla domanda.
Olli,

Risposte:


12

Questo è dalla politica di sicurezza di Ubuntu :

Bit di autorizzazione necessario

  • Le applicazioni, inclusi desktop e shell, non devono eseguire codice eseguibile dai file quando sono entrambi:

    • manca il bit eseguibile
    • situato nella home directory di un utente o nella directory temporanea.
  • Ciò include i file * .desktop, * .jar e * .exe.

  • Nulla può fornire una soluzione alternativa per eseguirli comunque automaticamente ...

Quindi sì, secondo questo criterio, dovrebbe essere possibile eseguire un file .desktop senza il set di bit eseguibile. In base a questo criterio si avrebbe solo a spostare il file fuori dalle /home/e /tmp/le directory e poi si può avviare senza il bit eseguibile. Questo è in teoria / secondo la politica.

In pratica nautilus ti consentirà di avviare i file .desktop senza il bit eseguibile impostato dalle directory XDG_DATA_DIR e dalla ~/.gnome2/directory. Puoi controllare XDG_DATA_DIRS con il echo $XDG_DATA_DIRScomando. Quindi se inserisci il tuo file .desktop in un XDG_DATA_DIR o in ~/.gnome2/esso sarai in grado di avviarlo da nautilus senza il set di bit eseguibile. Almeno il 12.04 funziona così. Come è in linea con la suddetta politica che non conosco.


Per quanto examples.desktopmenzionato nella domanda: quel file .desktop è un diverso tipo di file .desktop. È un "Link", non vuole eseguire nulla, in pratica funziona come un link simbolico. Questi tipi di file .desktop funzionano ovunque.


1
Grazie per la tua risposta. Copre quasi tutto ciò che volevo sapere. Solo altre due cose. [i] Sto anche usando 12.04, ma un .desktopfile esterno /homesenza bit eseguibile non ha funzionato per me. [ii] Posso aggiungere una cartella in $XDG_DATA_DIRS?, ho provato export XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/senza successo.
souravc,

@souravc [i] Come ho detto, questo è secondo la politica che dovrebbe funzionare al di fuori della /home/directory. Come ho scritto, in pratica nautilus si comporta in modo diverso e esegue anche alcuni .desktop da una directory home ( ~/.gnome2/) ma non viene eseguito da tutte le directory esterne a / home, solo da XDG_DATA_DIRS. Quindi penso che il comportamento di nautilus non sia perfettamente in linea con la politica. [ii] Su come aggiungere una directory dai un'occhiata a questo post sul blog .
falconiere,

1

Puoi creare e posizionare il .desktopfile in ~/.local/share/applications- quindi apparirà nel trattino / menu / qualunque cosa.

Dovrà essere simile a questo:

[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

Questo perché i file ~/.local/share/applicationsfunzionano allo stesso modo dei file in /usr/share/applications- entrambi i quali sulla maggior parte dei sistemi funzionano bene senza autorizzazioni eseguibili, anche se di proprietà di un utente diverso da root. Questo, tuttavia, non sembra sempre essere il caso.

Per ottenere effettivamente il file su cui fare clic e quindi aprirlo, saranno necessarie autorizzazioni eseguibili.


1
@ downvoter plz lascia un commento per critiche costruttive. @wilf Penso che la tua risposta non risponda esattamente alla mia domanda. Non è possibile eseguire un .desktopfile a ~/.local/share/applicationsmeno che non disponga dell'autorizzazione di esecuzione.
souravc,

So che questa non è una risposta in quanto tale. Non ho mai avuto il problema, ho appena creato file di testo in Gedit con contenuti simili a quelli sopra, disconnettersi e accedere, e funziona benissimo .... Ho fatto bene su Ubuntu 10, 12.04, 13.04, 13.10 e qualsiasi versione di Fedora da circa Fedora 12. Alcuni anche su Debian. Il controllo mostra che hanno principalmente i permessi -rw-r--r--....
Wilf,

0

Sembra di no, non puoi senza modificare GNOME. C'è un rapporto sui bug del launchpad , che è confermato, ma non seguito, su questo problema esatto.

Quando si crea un .desktopfile personalizzato /usr/share/applications/con root proprietario, non è necessaria l'autorizzazione di esecuzione.


Questa segnalazione di bug è davvero vecchia (su Ubuntu 10.04). Non ho trovato alcun rapporto di questo tipo per Ubuntu 12.04. Hai trovato qualcosa?
souravc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.