.Desktop फ़ाइल की अनुमति


10

.desktopफ़ाइलों की अनुमति के बारे में कुछ स्पष्टीकरण की आवश्यकता है । मैं देख सकता हूँ कि रूट की स्वामित्व वाली सभी .desktopफाइलें /usr/share/applications/अनुमति हैं,

-rw-r--r--

भी examples.desktopपर $HOMEउपयोगकर्ता के स्वामित्व में एक ही अनुमति है। वे सभी ठीक से चलते हैं।

लेकिन जब मैं एक कस्टम .desktopफ़ाइल बनाने जा रहा हूँ, जिसमें एक ही अनुमति हो तो वह निम्न त्रुटि संदेश को फेंक रहा है,

अविश्वसनीय आवेदन लांचर
आवेदन लांचर "myapp.desktop" के रूप में भरोसा चिह्नित नहीं किया गया है। यदि आप इस फ़ाइल के स्रोत को नहीं जानते हैं, तो इसे लॉन्च करना असुरक्षित हो सकता है।

लेकिन निष्पादन की अनुमति को जोड़ने से यह बिना किसी समस्या के चलने की अनुमति है।

प्रश्न: कस्टम .desktopफ़ाइलों +xको चलाने के लिए अनुमतियों की आवश्यकता क्यों है या कुछ .desktopफाइलें निष्पादन की अनुमति के बिना कैसे चल सकती हैं? क्या .desktopनिष्पादन अनुमति के बिना कस्टम फ़ाइल चलाना संभव है ?


संबंधित , लेकिन सवाल का जवाब नहीं देता है।
ओली

जवाबों:


12

यह उबंटू की सुरक्षा नीति से है :

निष्पादन-अनुमति बिट आवश्यक

  • डेस्कटॉप और शेल सहित अनुप्रयोग, दोनों के होने पर फ़ाइलों से निष्पादन योग्य कोड नहीं चलाना चाहिए:

    • निष्पादन योग्य बिट की कमी है
    • एक उपयोगकर्ता के घर निर्देशिका या अस्थायी निर्देशिका में स्थित है।
  • इसमें * .desktop, * .jar और * .exe फ़ाइलें शामिल हैं।

  • कुछ भी नहीं स्वचालित रूप से उन्हें चलाने के लिए एक समाधान प्रदान कर सकते हैं ...

तो हां, इस नीति के अनुसार, निष्पादन योग्य बिट सेट के बिना एक .desktop फ़ाइल चलाना संभव होना चाहिए। इस नीति के अनुसार आप केवल से उस फ़ाइल को बाहर ले जाने के लिए होता है /home/और /tmp/निर्देशिका और फिर आप यह निष्पादन योग्य बिट सेट के बिना शुरू कर सकते हैं। यह सिद्धांत / नीति के अनुसार है।

व्यवहार में नॉटिलस आपको XDG_DATA_DIR निर्देशिकाओं और निर्देशिका से निष्पादन योग्य बिट सेट के बिना .desktop फ़ाइलों को लॉन्च करने की अनुमति देगा ~/.gnome2/। आप XDG_DATA_DIRS को echo $XDG_DATA_DIRSकमांड से चेक कर सकते हैं । इसलिए यदि आप अपनी .desktop फ़ाइल को एक XDG_DATA_DIR में डालते हैं या ~/.gnome2/आप निष्पादन योग्य बिट सेट के बिना इसे नॉटिलस से लॉन्च कर पाएंगे। कम से कम 12.04 पर यह इस तरह काम करता है। यह उपर्युक्त नीति के अनुरूप कैसे है, मुझे नहीं पता।


के लिए examples.desktopप्रश्न में आपका उल्लेख: यह .desktop फ़ाइल .desktop फ़ाइल की एक अलग तरह का है। यह एक "लिंक" है, यह कुछ भी निष्पादित नहीं करना चाहता है, यह मूल रूप से एक सिमलिंक के रूप में काम करता है। इस तरह की .desktop फाइलें हर जगह काम करती हैं।


1
आपके उत्तर के लिए धन्यवाद। यह लगभग सभी को शामिल किया गया है जो मैं जानना चाहता था। बस दो और बातें। [i] मैं १२.०४ का भी उपयोग कर रहा हूं, लेकिन निष्पादन योग्य बिट के बिना .desktopबाहर एक फ़ाइल /homeमेरे लिए काम नहीं करती थी। [ii] क्या मैं किसी भी फ़ोल्डर को जोड़ सकता हूं $XDG_DATA_DIRS?, मैंने export XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/बिना किसी सफलता के प्रयास किया।
souravc

@souravc [i] जैसा कि मैंने कहा, यह नीति के अनुसार है कि इसे /home/निर्देशिका से बाहर काम करना चाहिए । जैसा कि मैंने लिखा है, व्यवहार में नॉटिलस अलग तरह से व्यवहार करता है और यहां तक ​​कि एक होम डायरेक्टरी ( ~/.gnome2/) से कुछ .desktop चलाता है, लेकिन केवल XDG_DATA_DIRS से / घर के बाहर प्रत्येक डायर से नहीं चलता है। इसलिए मुझे लगता है कि नॉटिलस का व्यवहार पूरी तरह से नीति के अनुरूप नहीं है। [ii] कैसे एक निर्देशिका जोड़ने के लिए इस ब्लॉग पोस्ट की जाँच करें
बाज़

1

आप .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- दोनों जिनमें से अधिकांश सिस्टम निष्पादन योग्य अनुमतियों के बिना ठीक काम करते हैं, रूट के अलावा किसी अन्य उपयोगकर्ता के स्वामित्व में भी। हालांकि यह हमेशा मामला नहीं लगता है।

वास्तव में फ़ाइल को क्लिक करने और फिर खोलने के लिए, इसे निष्पादन योग्य अनुमतियों की आवश्यकता होगी।


1
@ downvoter plz रचनात्मक आलोचना के लिए एक टिप्पणी छोड़ दें। @ मुझे लगता है कि आपका जवाब बिल्कुल मेरे सवाल का जवाब नहीं है। मैं तब तक कोई .desktopफ़ाइल नहीं चला सकता , ~/.local/share/applicationsजब तक कि उसे निष्पादन की अनुमति न हो।
स्मारिका

मुझे पता है कि यह इस तरह से एक जवाब नहीं है। मुझे कभी भी समस्या नहीं हुई, मैंने बस उपरोक्त, लॉगआउट और लॉगिन के समान सामग्री के साथ Gedit में पाठ फाइलें बनाई हैं, और यह ठीक काम करता है .... मैंने Ubuntu 10, 12.04, 13.04, 13.10, और किसी भी पर यह जुर्माना किया है फेडोरा के चारों ओर के संस्करण के बाद से 12. कुछ डेबियन पर भी। जाँच से पता चलता है कि उनके पास ज्यादातर अनुमति है -rw-r--r--....
विल्फ

0

ऐसा लगता है कि नहीं, आप गनोम को संशोधित किए बिना नहीं कर सकते। वहाँ एक है लॉन्चपैड बग रिपोर्ट है, जो की पुष्टि की है, लेकिन पर कार्रवाई नहीं की इस सटीक मुद्दे पर,।

जब आप स्वामी रूट .desktopके /usr/share/applications/साथ एक कस्टम फ़ाइल बनाते हैं , तो उसे निष्पादित अनुमति की आवश्यकता नहीं होती है।


यह बग रिपोर्ट वास्तव में पुरानी है (उबंटू 10.04 पर)। मैं उबंटू 12.04 के लिए ऐसी किसी भी रिपोर्ट में नहीं आया था। कुछ मिला क्या?
स्मारिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.