วิธีเรียกใช้ไอคอน .desktop จาก sudo


11

ฉันได้สร้างไอคอนเดสก์ท็อปสำหรับ gddccontrol แต่ในการใช้งานฉันต้องเรียกใช้งานจาก sudo มีวิธีเรียกใช้คำสั่งจากไอคอนเดสก์ท็อปเช่น

sudo -pPASSWORD gddccontrol

ดังนั้นมันจะไม่ถามรหัสผ่านใน terminal?

ฉันแค่ต้องการคลิกและเรียกใช้ด้วยสิทธิ์ sudo

[Desktop Entry]
Type=Application
Name=GDDCControl
Terminal=false
Comment=gddccontrol ddccontrol
Exec=sudo -pPASSWORD gddccontrol
Icon=~/Pictures/10429.png

เมื่อฉันรันไอคอนจากเทอร์มินัลด้วยคำสั่ง Exec ต่อไปนี้มันใช้งานได้ดี แต่มันไม่ทำงานใน Launcher :(

Exec=echo mypasswd | sudo -S gddccontrol

คำตอบ:


17

ไม่เคยใช้รหัสผ่านของคุณเก็บไว้ใน.desktopไฟล์ มันไม่ปลอดภัยอย่างมาก

นอกจากนี้คุณไม่สามารถเรียกใช้คำสั่งที่ซับซ้อนใน.desktopไฟล์แบบนั้นได้ แต่นั่นเป็นอีกเรื่อง

สิ่งที่ต้องทำ

คุณมีตัวเลือกน้อย:

  1. เพิ่มgddccontrolไปยังsudoersไฟล์ตามที่อธิบายไว้เช่นที่นี่ สิ่งนี้สามารถทำได้หากคุณแน่ใจว่าไม่สามารถใช้แอปพลิเคชันเพื่อทำสิ่งที่เป็นอันตรายได้

    จากนั้นใช้

    Exec=sudo gddccontrol
    

    ในExec=บรรทัด

  2. ตัวเลือกอื่นคือการแทนที่Exec=บรรทัดด้วย:

    Exec=gksu gddccontrol
    

    ในกรณีนี้เมื่อคุณคลิกที่ไอคอนคุณจะได้รับแจ้งให้ป้อนรหัสผ่านของคุณผ่าน gui
    คุณอาจต้องติดตั้งgksu:

    sudo apt-get install gksu
    

ไม่มีวิธีอื่นใดหากไม่แก้ไข sudoers และ gksu? เพราะ gksu มีวิธีถามรหัสผ่าน แต่เมื่อฉันนอนอยู่บนโซฟาในเวลาเย็นฉันอยากจะเรียกใช้ gddccontrol ด้วยเม้าส์เพื่อลดความสว่าง / ความต่างสีและดูภาพยนตร์โดยไม่ต้องมาที่คีย์บอร์ดของฉัน ฉันควรที่จะให้ผู้ใช้ของฉันเข้าถึง $ gddccontrol dev: / dev / i2c-4: การอนุญาตถูกปฏิเสธฉันแค่ต้องการวิธีที่ง่ายโดยไม่ต้องปวดหัวเพื่อเปลี่ยนความสว่างและความคมชัดในช่วงเย็น: (
ยูจีน

1
@Eugene ฉันสามารถจินตนาการ ฉันจะไปหาไฟล์ sudoers ในกรณีนั้น
Jacob Vlijm

1
ชอบpkexecมากกว่าgksu; ฉันเชื่อว่ามีเมตาโพสต์เกี่ยวกับเรื่องนี้
แมว

@cat pkexecไม่ได้ทำงานกับแอปพลิเคชั่น gui แบบนั้น การตั้งค่าซับซ้อนกว่าในขณะที่gksuทำงานอย่างสมบูรณ์
Jacob Vlijm

แต่ฉันไม่จำเป็นต้องติดตั้งpkexecในวันที่ 16.04
Valentas

4

การใช้sudoพินัยกรรมจะขอให้ใส่รหัสผ่าน สิ่งที่คุณต้องทำคือให้สิทธิ์ผู้ใช้ของคุณ ผมไม่แน่ใจว่าที่โปรแกรมที่อยู่ /usr/bin/แต่เพื่อประโยชน์ของคำตอบนี้สมมติว่ามันเป็น

ใน terminal รันสิ่งนี้:

sudo chmod o+x /usr/bin/gddccontrol

คำสั่งที่อนุญาตให้oผู้ใช้บิดา (เช่นคุณ) สิทธิที่จะจx ecute โปรแกรมโดยไม่จำเป็นต้องขออนุญาต

จากนั้นในไฟล์ .desktop เพียงใช้:

Exec=gddccontrol

0

ฉันใช้รหัสผ่านแบบเข้ารหัสยากในไฟล์ข้อความธรรมดาดังนั้นฉันจึงคิดได้สองวิธี:

  1. ทำการแก้ไขทั้งระบบซึ่งคำสั่งทุกคำสั่งที่ผู้ใช้ของคุณใช้กับ sudo นั้นทำงานเป็น superuser โดยไม่ต้องใส่รหัสผ่าน คุณสามารถหาคำตอบได้ในคำตอบนี้

  2. หากคุณไม่ต้องการให้sudoคำสั่งถูกเรียกใช้ด้วยรหัสผ่านเสมอให้ใช้วิธีปฏิบัติที่ดีที่สุดgksuก่อนที่คำสั่งของคุณจะถามรหัสผ่านในหน้าต่างกราฟิกแทนที่จะเขียนรหัสผ่านดิบของคุณลงในไฟล์

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