การอนุญาตไฟล์ .desktop


10

ต้องการคำชี้แจงเกี่ยวกับการอนุญาตของ.desktopไฟล์ ฉันสามารถดู.desktopไฟล์ทั้งหมดที่/usr/share/applications/root เป็นเจ้าของได้รับอนุญาต

-rw-r--r--

นอกจากนี้ยังมีexamples.desktopที่$HOMEเป็นของผู้ใช้มีสิทธิ์เหมือนกัน ทั้งหมดนั้นทำงานได้อย่างถูกต้อง

แต่เมื่อฉันจะสร้าง.desktopไฟล์ที่กำหนดเองที่มีสิทธิ์เดียวกันมันจะโยนข้อความผิดพลาดต่อไปนี้

แอปพลิเคชันที่ไม่น่าเชื่อถือตัวเรียก
ใช้งานแอปพลิเคชัน "myapp.desktop" ไม่ได้รับการทำเครื่องหมายว่าเชื่อถือได้ หากคุณไม่ทราบที่มาของไฟล์นี้การเปิดไฟล์อาจไม่ปลอดภัย

แต่การเพิ่มการอนุญาตให้เรียกใช้นั้นอนุญาตให้ทำงานได้โดยไม่มีปัญหาใด ๆ

ถาม: เหตุใด.desktopไฟล์ที่กำหนดเองจึงต้องมีการ+xอนุญาตให้เรียกใช้หรือ.desktopไฟล์บางไฟล์สามารถทำงานได้โดยไม่ต้องมีการอนุญาตให้ใช้งาน เป็นไปได้หรือไม่ที่จะเรียกใช้.desktopไฟล์ที่กำหนดเองโดยไม่ได้รับอนุญาตให้ดำเนินการ


ที่เกี่ยวข้องแต่ไม่ตอบคำถาม
Olli

คำตอบ:


12

นี่คือจากนโยบายความปลอดภัยของ Ubuntu :

จำเป็นต้องใช้บิตดำเนินการอนุญาต

  • แอปพลิเคชันรวมถึงเดสก์ท็อปและเชลล์ต้องไม่เรียกใช้โค้ดที่สามารถเรียกใช้งานได้จากไฟล์เมื่อทั้งคู่:

    • ไม่มีบิตที่เรียกใช้งานได้
    • อยู่ในไดเรกทอรีบ้านหรือไดเรกทอรีชั่วคราวของผู้ใช้
  • ซึ่งรวมถึงไฟล์ * .desktop, * .jar และ * .exe

  • ไม่มีสิ่งใดที่สามารถให้วิธีแก้ปัญหาเพื่อเรียกใช้โดยอัตโนมัติ ...

ดังนั้นใช่ตามนโยบายนี้คุณควรเรียกใช้ไฟล์ .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 ชนิดอื่น มันเป็น "ลิงค์" มันไม่ต้องการที่จะดำเนินการอะไรมันเป็นพื้นทำงานเป็น symlink ไฟล์ .desktop ประเภทนี้ทำงานได้ทุกที่


1
ขอบคุณสำหรับคำตอบ. ครอบคลุมเกือบทั้งหมดที่ฉันอยากรู้ อีกสองสิ่ง [i] ฉันใช้ 12.04 ด้วยเช่นกัน แต่.desktopไฟล์ภายนอกที่/homeไม่มีบิตที่ใช้งานได้ไม่ได้ผลสำหรับฉัน [ii] ฉันสามารถเพิ่มโฟลเดอร์ใด ๆ ได้$XDG_DATA_DIRSหรือไม่ฉันพยายามexport XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/โดยไม่ประสบความสำเร็จ
souravc

@souravc [i] ดังที่ฉันได้กล่าวไปแล้วว่าเป็นไปตามนโยบายที่ควรทำงานนอก/home/ไดเรกทอรี ตามที่ฉันได้เขียนไว้ในทางปฏิบัติ nautilus นั้นมีพฤติกรรมที่แตกต่างกันและแม้กระทั่งรัน .desktop บางตัวจากโฮมไดเร็กตอรี่ ( ~/.gnome2/) แต่ไม่ได้ทำงานจาก dir ทุกตัวนอก / home, เพียงแค่จาก XDG_DATA_DIRS ดังนั้นฉันคิดว่าพฤติกรรมของหอยโข่งนั้นไม่สอดคล้องกับนโยบายอย่างสมบูรณ์ [ii] เกี่ยวกับวิธีเพิ่มไดเรกทอรีลองดูโพสต์บล็อกนี้
falconer

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 โปรดแสดงความคิดเห็นสำหรับการวิจารณ์ที่สร้างสรรค์ @ Wilf ฉันคิดว่าคำตอบของคุณไม่ได้ตอบคำถามของฉันอย่างแน่นอน ฉันไม่สามารถเรียกใช้.desktopไฟล์ได้~/.local/share/applicationsจนกว่าจะมีสิทธิ์ดำเนินการ
souravc

ฉันรู้ว่านี่ไม่ใช่คำตอบเช่นนี้ ฉันไม่เคยมีปัญหาฉันเพิ่งสร้างไฟล์ข้อความใน Gedit ที่มีเนื้อหาคล้ายกับข้างบนออกจากระบบและเข้าสู่ระบบและใช้งานได้ดี .... ฉันทำสิ่งนี้ได้ดีบน Ubuntu 10, 12.04, 13.04, 13.10 และอื่น ๆ เวอร์ชั่นของ Fedora ตั้งแต่ประมาณ Fedora 12 บางรุ่นใน Debian เช่นกัน การตรวจสอบแสดงให้เห็นว่าพวกเขาส่วนใหญ่มีสิทธิ์-rw-r--r--....
วิลฟ์

0

ดูเหมือนไม่ใช่คุณไม่สามารถแก้ไข GNOME ได้โดยไม่ต้องแก้ไข มีรายงานบั๊กของ launchpadซึ่งได้รับการยืนยันแล้ว แต่ไม่ได้ดำเนินการใด ๆ กับปัญหาที่แน่นอนนี้

เมื่อคุณสร้าง.desktopไฟล์ที่กำหนดเองภายใต้/usr/share/applications/เจ้าของรากมันไม่จำเป็นต้องได้รับอนุญาตดำเนินการ


รายงานข้อผิดพลาดนี้เก่ามาก (บน Ubuntu 10.04) ฉันไม่ได้เจอรายงานดังกล่าวสำหรับ Ubuntu 12.04 คุณพบอะไรบ้าง?
souravc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.