Perlu beberapa klarifikasi tentang izin .desktop
file. Saya dapat melihat semua .desktop
file yang /usr/share/applications/
dimiliki oleh root memiliki izin,
-rw-r--r--
juga examples.desktop
di $HOME
milik pengguna memiliki izin yang sama. Semua itu berjalan dengan baik.
Tetapi ketika saya akan membuat .desktop
file khusus yang memiliki izin yang sama, ia melempar pesan kesalahan berikut,
Peluncur
aplikasi tidak tepercaya Peluncur aplikasi "myapp.desktop" belum ditandai sebagai tepercaya. Jika Anda tidak tahu sumber file ini, meluncurkannya mungkin tidak aman.
Tetapi menambahkan izin eksekusi memungkinkan untuk berjalan tanpa masalah.
T: Mengapa
.desktop
file khusus harus memiliki+x
izin untuk menjalankan atau bagaimana beberapa.desktop
file dapat berjalan tanpa izin eksekusi? Apakah mungkin menjalankan.desktop
file khusus tanpa izin eksekusi?
sumber
Jawaban:
Ini dari kebijakan keamanan Ubuntu :
Jadi ya, sesuai dengan kebijakan ini, harus dimungkinkan untuk menjalankan file .desktop tanpa set bit yang dapat dieksekusi. Menurut kebijakan ini Anda hanya harus memindahkan file yang keluar dari
/home/
dan/tmp/
direktori dan kemudian Anda dapat memulai tanpa bit set executable. Ini secara teori / sesuai dengan kebijakan.Dalam praktiknya nautilus akan memungkinkan Anda untuk meluncurkan file .desktop tanpa bit yang dapat dieksekusi yang ditetapkan dari direktori XDG_DATA_DIR dan dari
~/.gnome2/
direktori. Anda dapat memeriksa XDG_DATA_DIRS denganecho $XDG_DATA_DIRS
perintah. Jadi, jika Anda meletakkan file .desktop Anda di XDG_DATA_DIR atau~/.gnome2/
Anda akan dapat meluncurkannya dari nautilus tanpa set bit yang dapat dieksekusi. Setidaknya pada 12,04 berfungsi seperti itu. Bagaimana ini sejalan dengan kebijakan tersebut di atas yang saya tidak tahu.Untuk yang
examples.desktop
disebutkan dalam pertanyaan: File .desktop itu adalah jenis yang berbeda dari file .desktop. Ini adalah "Tautan", tidak ingin menjalankan apa pun, pada dasarnya berfungsi sebagai symlink. Jenis file .desktop ini berfungsi di mana-mana.sumber
.desktop
file di luar/home
tanpa bit yang dapat dieksekusi tidak berfungsi untuk saya. [ii] Dapatkah saya menambahkan folder apa pun di$XDG_DATA_DIRS
?, Saya mencobaexport XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/
tanpa hasil./home/
direktori. Seperti yang saya tulis, dalam praktiknya nautilus berperilaku berbeda dan bahkan menjalankan beberapa .desktop dari direktori home (~/.gnome2/
) tetapi tidak dijalankan dari setiap dir di luar / home, hanya dari XDG_DATA_DIRS. Jadi saya pikir perilaku nautilus tidak sepenuhnya sejalan dengan kebijakan tersebut. [ii] Tentang cara menambahkan direktori, periksa posting blog ini .Anda dapat membuat dan menempatkan
.desktop
file di~/.local/share/applications
- maka akan muncul di dash / menu / apa pun.Ini akan perlu terlihat seperti ini:
Ini karena file dalam
~/.local/share/applications
pekerjaan sama dengan file dalam/usr/share/applications
- keduanya di sebagian besar sistem berfungsi dengan baik tanpa izin yang dapat dieksekusi, juga ketika dimiliki oleh pengguna selain root. Namun ini tidak selalu terjadi.Untuk benar-benar mendapatkan file yang akan diklik dan kemudian buka, itu akan memerlukan izin yang dapat dieksekusi.
sumber
.desktop
file dari~/.local/share/applications
kecuali memiliki izin eksekusi.-rw-r--r--
....Sepertinya tidak, Anda tidak bisa tanpa memodifikasi GNOME. Ada laporan bug launchpad , yang Dikonfirmasi, tetapi tidak ditindaklanjuti, tentang masalah ini.
Saat Anda membuat
.desktop
file khusus di bawah/usr/share/applications/
dengan root pemilik, itu tidak memerlukan izin eksekusi.sumber