Bir .desktop dosyasının izni


10

.desktopDosyaların izinleri hakkında biraz açıklığa ihtiyacınız var . Kök sahip olunan tüm .desktopdosyaların /usr/share/applications/iznini görebiliyorum,

-rw-r--r--

Ayrıca examples.desktopen $HOMEkullanıcının sahip olduğu aynı iznine sahip. Bunların hepsi düzgün çalışıyor.

Ama .desktopaynı izne sahip özel bir dosya oluşturacağımda aşağıdaki hata mesajını atıyor,

Güvenilmeyen uygulama başlatıcısı
"myapp.desktop" uygulama başlatıcısı güvenilir olarak işaretlenmedi. Bu dosyanın kaynağını bilmiyorsanız, başlatmak güvenli olmayabilir.

Ancak yürütme izninin eklenmesi, herhangi bir sorun olmadan çalışmasına izin veriyor.

S: Özel .desktopdosyaların neden +xçalıştırma izinlerine sahip olması gerekiyor veya bazı .desktopdosyalar yürütme izni olmadan nasıl çalıştırılabilir? .desktopYürütme izni olmadan özel bir dosya çalıştırmak mümkün müdür ?


İlgili , ancak soruyu cevaplamıyor.
Olli

Yanıtlar:


12

Bu Ubuntu'nun güvenlik politikasından kaynaklanmaktadır :

Yürütme-İzin Bit Gerekli

  • Masaüstü bilgisayarlar ve kabuklar da dahil olmak üzere uygulamalar, her ikisi de dosyalardan yürütülebilir kod çalıştırmamalıdır:

    • çalıştırılabilir bit eksik
    • kullanıcının ana dizininde veya geçici dizininde bulunur.
  • Buna * .desktop, * .jar ve * .exe dosyaları dahildir.

  • Hiçbir şey onları otomatik olarak çalıştırmak için geçici bir çözüm sunamaz ...

Bu nedenle, evet, bu ilkeye göre, yürütülebilir bit kümesi olmadan bir .desktop dosyası çalıştırmak mümkün olmalıdır. Bu politikaya göre, yalnızca dosyayı /home/ve /tmp/dizinlerinden çıkarmanız gerekir ve daha sonra yürütülebilir bit seti olmadan başlatabilirsiniz. Bu teoride / politikaya göre.

Pratikte nautilus, .desktop dosyalarını XDG_DATA_DIR dizinlerinden ve dizinden çalıştırılabilir bit ayarlanmadan başlatmanıza izin verecektir ~/.gnome2/. XDG_DATA_DIRS echo $XDG_DATA_DIRSkomutunu kullanarak kontrol edebilirsiniz . Yani .desktop dosyanızı bir XDG_DATA_DIR içine veya içine koyarsanız ~/.gnome2/, yürütülebilir bit seti olmadan nautilus'tan başlatabilirsiniz. En azından 12.04'te böyle çalışıyor. Bu bilmediğim politika ile nasıl örtüşüyor?


İçin examples.desktopsöz konusu belirtilen: Bu .desktop dosya .desktop dosyanın farklı bir türüdür. Bu bir "Link", hiçbir şey yürütmek istemiyor, temelde bir sembolik olarak çalışıyor. Bu tür .desktop dosyaları her yerde çalışır.


1
Cevabınız için teşekkürler. Neredeyse bilmek istediğim her şeyi kapsıyor. Sadece iki şey daha. [i] Ben de 12.04 kullanıyorum, ama yürütülebilir bit olmayan bir .desktopdosya /homebenim için çalışmadı. [ii] Can I herhangi klasör eklemek $XDG_DATA_DIRS? denedim export XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/başarılı.
souravc

@souravc [i] Dediğim gibi, bu /home/dizin dışında çalışması gerektiği ilkesine göre . Yazdığım gibi, pratikte nautilus farklı davranır ve hatta bir ana ~/.gnome2/dizinden ( ) bazı .desktop çalıştırır, ancak / home dışındaki her dizinden, sadece XDG_DATA_DIRS'den çalıştırmaz. Bence nautilus'un davranışı politikaya tam olarak uygun değil. [ii] Bir dizinin nasıl ekleneceği konusunda bu blog yayınına göz atın .
falconer

1

Oluşturabilir ve yerleştirebilirsiniz .desktopdosyayı~/.local/share/applications - o zaman / ne olursa olsun tire / menüde görünür.

Bunun gibi bir şeye bakması gerekecek:

[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

Bunun nedeni, dosyaların içindeki ~/.local/share/applicationsdosyaların/usr/share/applications - her ikisi de çoğu sistemde yürütülebilir izinler olmadan ve ayrıca root dışındaki bir kullanıcının sahibi olduğunda iyi çalışır. Ancak bu her zaman böyle görünmüyor.

Dosyanın gerçekten tıklanmasını ve ardından açılmasını sağlamak için yürütülebilir izinlere sahip olması gerekir.


1
@ downvoter plz yapıcı eleştiri için bir yorum bırakın. @wilf Bence cevabım sorumu tam olarak cevaplamıyor. Yürütme izni olmadığı sürece bir .desktopdosyayı çalıştıramadım ~/.local/share/applications.
souravc

Bunun böyle bir cevap olmadığını biliyorum. Hiç sorun yaşamadım, sadece Gedit'te yukarıdaki içerik, çıkış ve giriş ile benzer metin dosyaları oluşturdum ve iyi çalışıyor .... Ubuntu 10, 12.04, 13.04, 13.10 ve herhangi birinde bu para cezasını yaptım Fedora 12'den beri Fedora versiyonu. Bazıları Debian'da. Kontrol çoğunlukla izinleri olduğunu gösterir -rw-r--r--....
Wilf

0

Hayır gibi görünüyor, GNOME'u değiştirmeden yapamazsınız. Bu sorunla ilgili olarak Onaylanan ancak üzerinde işlem yapılmayan bir başlatma alanı hata raporu var .

Sahip kökü .desktopaltında özel bir dosya oluşturduğunuzda /usr/share/applications/, yürütme izni gerektirmez.


Bu hata raporu gerçekten eski (Ubuntu 10.04'te). Ubuntu 12.04 için böyle bir raporla karşılaşmadım. Bir şey buldun mu?
souravc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.