Разрешение файла .desktop

Нужны некоторые разъяснения о разрешениях файлов .desktop. Я вижу, что все .desktop файлы в /usr/share/applications/, принадлежащие пользователю root, имеют разрешение,

-rw-r--r--

и examples.desktop в $HOME, принадлежащем пользователю, имеют такое же разрешение. Все они работают правильно.

Но когда я собираюсь создать собственный файл .desktop с тем же разрешением, он выдает следующее сообщение об ошибке:

Средство запуска ненадежных приложений
Средство запуска приложения "myapp.desktop" не помечено как надежное. Если вы не знаете источник этого файла, запуск его может быть небезопасным.

Но добавление разрешения на выполнение позволяет запустить его без проблем.

В: Почему пользовательские .desktop файлы должны иметь права +x для запуска или как некоторые .desktop файлы могут запускаться без разрешения на выполнение? Можно ли запустить пользовательский файл .desktop без разрешения на выполнение?

10
задан 11 February 2014 в 23:41

3 ответа

Это из политики безопасности Ubuntu :

Требуется бит разрешения на выполнение

  • Приложения, включая рабочие столы и оболочки, не должны запускать исполняемый код из файлов, когда они оба:

    • не имеют исполняемого бита
    • , расположенного в домашнем каталоге пользователя или во временном каталоге.
  • Сюда входят файлы * .desktop, * .jar и * .exe.

  • Ничто не может обеспечить обходной путь для их автоматического запуска в любом случае ...

Так что да, согласно этой политике, должна быть возможность запустить файл .desktop без установленного исполняемого бита. В соответствии с этой политикой вам нужно будет только удалить этот файл из каталогов /home/ и /tmp/, а затем запустить его без установленного исполняемого бита. Это в теории / в соответствии с политикой.

На практике nautilus позволит вам запускать файлы .desktop без установленного исполняемого бита из каталогов XDG_DATA_DIR и из каталога ~/.gnome2/. Вы можете проверить XDG_DATA_DIRS с помощью команды echo $XDG_DATA_DIRS. Поэтому, если вы поместите свой файл .desktop в XDG_DATA_DIR или в ~/.gnome2/, вы сможете запустить его из nautilus без установленного исполняемого бита. По крайней мере, 12.04 это работает так. Как это согласуется с вышеупомянутой политикой, я не знаю.


Для examples.desktop, упомянутого в вопросе: этот файл .desktop - это файл другого типа .desktop. Это «ссылка», она не хочет ничего выполнять, она в основном работает как символическая ссылка. Такие файлы .desktop работают везде.

0
ответ дан 11 February 2014 в 23:41

Вы можете создать и поместить файл .desktop в ~/.local/share/applications - тогда он появится в тире / меню / что угодно.

Это должно выглядеть примерно так:

[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

Это потому, что файлы в ~/.local/share/applications работают так же, как файлы в /usr/share/applications - оба из которых в большинстве систем работают нормально без права на выполнение, также когда они принадлежат пользователю, отличному от root. Однако это не всегда так.

Чтобы получить файл, который нужно щелкнуть, а затем открыть, ему понадобятся разрешения для исполняемого файла.

0
ответ дан 11 February 2014 в 23:41

Кажется, нет, вы не можете без изменения GNOME. По этому конкретному вопросу есть отчет об ошибке панели запуска , который подтвержден, но не обработан.

Когда вы создаете пользовательский файл .desktop в разделе /usr/share/applications/ с владельцем root, для него не требуется разрешение на выполнение.

0
ответ дан 11 February 2014 в 23:41

Другие вопросы по тегам:

Похожие вопросы: