Potrzebujesz wyjaśnienia na temat uprawnień do .desktop
plików. Widzę, że wszystkie .desktop
pliki /usr/share/applications/
należące do roota mają uprawnienia,
-rw-r--r--
również examples.desktop
w $HOME
posiadaniu użytkownika ma to samo uprawnienie. Wszystkie działają poprawnie.
Ale kiedy zamierzam utworzyć niestandardowy .desktop
plik posiadający to samo uprawnienie, wyświetla następujący komunikat o błędzie:
Niezaufany program uruchamiający aplikację
Program uruchamiający „myapp.desktop” nie został oznaczony jako zaufany. Jeśli nie znasz źródła tego pliku, uruchomienie go może być niebezpieczne.
Ale dodanie uprawnienia do wykonywania pozwala na uruchomienie go bez żadnych problemów.
P: Dlaczego
.desktop
pliki niestandardowe muszą mieć+x
uprawnienia do uruchamiania lub jak niektóre.desktop
pliki mogą działać bez pozwolenia na wykonanie? Czy można uruchomić.desktop
plik niestandardowy bez pozwolenia na wykonanie?
źródło
Odpowiedzi:
Wynika to z polityki bezpieczeństwa Ubuntu :
Tak więc, zgodnie z tymi zasadami, powinno być możliwe uruchomienie pliku .desktop bez zestawu bitów wykonywalnych. Według tej zasady trzeba tylko przenieść ten plik na zewnątrz od
/home/
i/tmp/
katalogów, a następnie można go uruchomić bez możliwości uruchamiania programów. Jest to teoretycznie / zgodnie z polityką.W praktyce nautilus pozwala na uruchamianie plików .desktop bez zestawu bitów wykonywalnych z katalogów XDG_DATA_DIR iz
~/.gnome2/
katalogu. Możesz sprawdzić XDG_DATA_DIRS za pomocąecho $XDG_DATA_DIRS
polecenia. Więc jeśli umieścisz plik .desktop w XDG_DATA_DIR lub w~/.gnome2/
, będziesz mógł uruchomić go z Nautilusa bez ustawionego bitu wykonywalnego. Przynajmniej 12.04 tak to działa. Jak to jest zgodne z wyżej wymienionymi zasadami, których nie znam.Dla
examples.desktop
wspomnianego w pytaniu: Ten plik .desktop jest innym rodzajem pliku .desktop. Jest to „Link”, nie chce niczego wykonywać, działa w zasadzie jako dowiązanie symboliczne. Tego rodzaju pliki .desktop działają wszędzie.źródło
.desktop
plik na zewnątrz/home
bez bitu wykonywalnego nie działał dla mnie. [ii] Czy mogę dodać dowolny folder$XDG_DATA_DIRS
? Próbowałemexport XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/
bezskutecznie./home/
katalogiem. Jak napisałem, w nautilus zachowuje się inaczej, a nawet uruchamia .desktop z katalogu domowego (~/.gnome2/
), ale nie uruchamia się z każdego katalogu poza / home, tylko z XDG_DATA_DIRS. Myślę więc, że zachowanie nautilusa nie jest całkowicie zgodne z polityką. [ii] Jak dodać katalog, sprawdź ten post na blogu .Możesz utworzyć i umieścić
.desktop
plik~/.local/share/applications
- wtedy pojawi się on w myślniku / menu / czymkolwiek.Będzie musiał wyglądać mniej więcej tak:
Wynika to z faktu, że istniejące pliki
~/.local/share/applications
działają tak samo, jak pliki, w których/usr/share/applications
oba - w większości systemów działają dobrze bez uprawnień wykonywalnych, także gdy są własnością użytkownika innego niż root. Nie zawsze jednak tak się dzieje.Aby plik został kliknięty, a następnie otwarty, potrzebne będą uprawnienia do wykonywania.
źródło
.desktop
pliku,~/.local/share/applications
chyba że ma on uprawnienia do wykonywania.-rw-r--r--
....Wydaje się, że nie, nie można tego zrobić bez modyfikacji GNOME. Istnieje raport błędu startera , który został potwierdzony, ale nie został podjęty żaden konkretny problem.
Po utworzeniu
.desktop
pliku niestandardowego/usr/share/applications/
z właścicielem root nie wymaga on uprawnień do wykonywania.źródło