Cara menjalankan ikon .desktop dari sudo

11

Saya telah membuat ikon desktop untuk gddccontrol, tetapi untuk menjalankannya saya harus menjalankannya dari sudo. Apakah ada cara untuk menjalankan perintah dari ikon desktop seperti,

sudo -pPASSWORD gddccontrol

jadi tidak akan menanyakan kata sandi di terminal?

Saya hanya ingin mengklik dan menjalankannya dengan izin sudo.

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

Ketika saya menjalankan ikon dari terminal dengan perintah Exec berikut ini berfungsi dengan baik, tetapi tidak bekerja di Launcher :(

Exec=echo mypasswd | sudo -S gddccontrol
Eugene
sumber

Jawaban:

17

TIDAK PERNAH menggunakan kata sandi Anda, disimpan dalam .desktopfile. Itu sangat tidak aman.

Selain itu, Anda tidak dapat menjalankan perintah rumit dalam .desktopfile begitu saja, tetapi itu adalah topik lain.

Apa yang harus dilakukan

Anda punya beberapa pilihan:

  1. Tambahkan gddccontrolke sudoersfile, seperti yang dijelaskan misalnya di sini . Ini dapat dilakukan jika Anda yakin aplikasi tidak dapat digunakan untuk melakukan hal-hal jahat.

    Kemudian gunakan

    Exec=sudo gddccontrol
    

    di- Exec=line

  2. Pilihan lain adalah mengganti Exec=saluran dengan:

    Exec=gksu gddccontrol
    

    Dalam hal ini, setelah Anda mengklik ikon, Anda akan diminta untuk memasukkan kata sandi Anda melalui gui.
    Anda mungkin perlu menginstal gksu:

    sudo apt-get install gksu
    
Yakub Vlijm
sumber
tidak ada cara lain tanpa mengedit sudoers dan gksu? karena gksu ada cara meminta kata sandi tetapi ketika saya berbaring di sofa di malam hari saya hanya ingin menjalankan gddccontrol dengan mouse mengurangi kecerahan / kontras dan terus menonton film tanpa datang ke keyboard saya. saya akan lebih baik memberikan akses pengguna saya ke dev $ gddccontrol: / dev / i2c-4: Izin ditolak saya hanya ingin cara mudah tanpa sakit kepala untuk mengubah kecerahan dan kontras di malam hari :(
Eugene
1
@Eugene, aku bisa membayangkan. Saya akan mencari file sudoers dalam kasus itu.
Jacob Vlijm
1
Lebih memilih pkexeclebih gksu; Saya percaya ada meta postingan tentang ini.
kucing
@cat pkexectidak berjalan di aplikasi gui begitu saja. Lebih rumit untuk diatur, sementara gksubekerja dengan sempurna.
Jacob Vlijm
Tapi saya tidak perlu menginstal pkexecadently pada 16.04.
Valentas
4

Dengan menggunakan sudomenurut definisi akan meminta permintaan kata sandi. Yang perlu Anda lakukan adalah memberikan izin eksekusi kepada pengguna Anda. Saya tidak yakin di mana program itu berada, tetapi demi jawaban ini, mari kita asumsikan itu /usr/bin/.

Di terminal jalankan ini:

sudo chmod o+x /usr/bin/gddccontrol

Perintah yang memberikan o ther pengguna (seperti Anda) hak untuk e x ecute program tanpa perlu izin.

Kemudian, dalam file .desktop, cukup gunakan:

Exec=gddccontrol

sumber
0

Saya menentang kata sandi hard-coding dalam file teks biasa sehingga saya bisa memikirkan dua solusi yang mungkin:

  1. buat pengeditan seluruh sistem bahwa setiap perintah yang dikeluarkan oleh pengguna Anda dengan sudo dijalankan sebagai superuser tanpa meminta kata sandi. Anda bisa mengetahui caranya di jawaban ini

  2. Jika Anda tidak ingin sudoperintah selalu dieksekusi dengan kata sandi, praktik terbaik gunakan gksusebelum perintah untuk meminta kata sandi di jendela grafik daripada menulis kata sandi mentah dalam file.

S.Mohsen sh
sumber