Нужны некоторые разъяснения о разрешениях .desktop
файлов. Я вижу, что все .desktop
файлы, /usr/share/applications/
принадлежащие root, имеют разрешение,
-rw-r--r--
Также examples.desktop
у $HOME
владельца есть такое же разрешение. Все они работают правильно.
Но когда я собираюсь создать собственный .desktop
файл с таким же разрешением, он выдает следующее сообщение об ошибке:
Ненадежное средство запуска приложений Средство запуска приложений "myapp.desktop" не помечено как надежное. Если вы не знаете источник этого файла, запуск его может быть небезопасным.
Но добавление разрешения на выполнение позволяет ему работать без каких-либо проблем.
Вопрос: Почему пользовательские
.desktop
файлы должны иметь+x
разрешения на запуск или как некоторые.desktop
файлы могут запускаться без разрешения на выполнение? Можно ли запустить пользовательский.desktop
файл без разрешения на выполнение?
источник
Ответы:
Это из политики безопасности Ubuntu :
Так что да, в соответствии с этой политикой, должна быть возможность запустить файл .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 работают везде.источник
.desktop
файл снаружи/home
без исполняемого бита у меня не работал. [ii] Могу ли я добавить любую папку в$XDG_DATA_DIRS
?, я попыталсяexport XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/
безуспешно./home/
каталога. Как я писал, на практике nautilus ведет себя по-разному и даже запускает некоторые .desktop из домашнего каталога (~/.gnome2/
), но не запускается из каждого каталога вне / home, только из XDG_DATA_DIRS. Поэтому я думаю, что поведение Наутилуса не совсем соответствует политике. [ii] О том, как добавить каталог, читайте в этом блоге .Вы можете создать и поместить
.desktop
файл в~/.local/share/applications
- тогда он появится в тире / меню / что угодно.Это должно выглядеть примерно так:
Это связано с тем, что файлы в
~/.local/share/applications
работе работают так же, как и файлы в них;/usr/share/applications
оба из них в большинстве систем работают нормально без разрешений на выполнение, также когда они принадлежат пользователю, отличному от root. Однако это не всегда так.Чтобы получить файл, который нужно щелкнуть, а затем открыть, ему понадобятся права на выполнение.
источник
.desktop
файл,~/.local/share/applications
если у него нет разрешения на выполнение.-rw-r--r--
....Кажется, нет, вы не можете без изменения GNOME. По этому конкретному вопросу есть отчет об ошибке панели запуска , который подтвержден, но не обработан.
Когда вы создаете пользовательский
.desktop
файл/usr/share/applications/
с правами владельца root, он не требует разрешения на выполнение.источник