Permissão de um arquivo .desktop

8

Precisa de esclarecimentos sobre as permissões dos arquivos .desktop . Eu posso ver todos os arquivos .desktop em /usr/share/applications/ de propriedade de root terem permissão,

-rw-r--r--

também examples.desktop at $HOME de propriedade do usuário tem a mesma permissão. Todos esses são executados corretamente.

Mas quando for criar um arquivo .desktop personalizado com a mesma permissão, a seguinte mensagem de erro será lançada

  

Iniciador de aplicativos não confiáveis
  O lançador de aplicativos "myapp.desktop" não foi marcado como confiável. Se você não souber a origem desse arquivo, iniciá-lo pode ser inseguro.

Mas adicionar a permissão de execução é permitir que ela seja executada sem qualquer problema.

  

P: Por que os arquivos .desktop personalizados precisam ter +x para executar ou como alguns arquivos .desktop podem ser executados sem permissão de execução? É possível executar um arquivo .desktop personalizado sem permissão de execução?

    
por souravc 11.02.2014 / 20:41

3 respostas

10

Isto é de Política de segurança do Ubuntu :

  

Bits de permissão de execução

     
  • Aplicativos, incluindo desktops e shells, não devem executar código executável a partir de arquivos quando eles são ambos:

         
    • sem o bit executável
    •   
    • localizado no diretório inicial ou no diretório temporário de um usuário.
    •   
  •   
  • Isso inclui arquivos * .desktop, * .jar e * .exe.

  •   
  • Nada pode fornecer uma solução alternativa para executá-los de qualquer maneira automaticamente ...

  •   

Então, sim, de acordo com essa política, deve ser possível executar um arquivo .desktop sem o bit executável definido. De acordo com essa política, você só precisa mover esse arquivo dos diretórios /home/ e /tmp/ e, em seguida, pode iniciá-lo sem o bit executável definido. Isso é em teoria / de acordo com a política.

No prática, o nautilus permitirá que você ative os arquivos .desktop sem o bit executável definido nos diretórios XDG_DATA_DIR e no diretório ~/.gnome2/ . Você pode verificar o XDG_DATA_DIRS com o comando echo $XDG_DATA_DIRS . Então, se você colocar seu arquivo .desktop em um XDG_DATA_DIR ou em ~/.gnome2/ , você poderá iniciá-lo do nautilus sem o bit executável definido. Pelo menos no 12.04 funciona assim. Como isso está de acordo com a política mencionada acima eu não sei.

Para o examples.desktop mencionado na pergunta: Esse arquivo .desktop é um tipo diferente de arquivo .desktop. É um "Link", não quer executar nada, basicamente funciona como um link simbólico. Esses tipos de arquivos .desktop funcionam em todos os lugares.

    
por falconer 11.02.2014 / 22:26
0

Parece que não, você não pode sem modificar o GNOME. Há um relatório de bug da barra de lançamento , que está confirmado, mas não executado, sobre esse problema exato.

Quando você cria um arquivo .desktop personalizado em /usr/share/applications/ com raiz do proprietário, ele não requer permissão de execução.

    
por Olli 11.02.2014 / 21:06
0

Você pode criar e colocar o arquivo .desktop em ~/.local/share/applications - então ele aparecerá no painel / menu / whatever.

Precisa ser algo assim:

[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

Isso ocorre porque os arquivos em ~/.local/share/applications funcionam da mesma forma que os arquivos em /usr/share/applications - ambos na maioria dos sistemas funcionam bem sem permissões executáveis, também quando pertencem a um usuário diferente de root. No entanto, isso nem sempre parece ser o caso.

Para realmente fazer com que o arquivo seja clicado e aberto, ele precisará de permissões executáveis.

    
por Wilf 11.02.2014 / 22:25