Jak uruchomić ikonę .desktop z sudo

11

Utworzyłem ikonę pulpitu dla gddccontrol, ale aby go uruchomić, muszę go uruchomić z sudo. Czy istnieje sposób uruchomienia polecenia z ikony pulpitu, np .:

sudo -pPASSWORD gddccontrol

więc nie poprosi mnie o hasło w terminalu?

Chcę tylko kliknąć i uruchomić go z uprawnieniami sudo.

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

Kiedy uruchamiam ikonę z terminala za pomocą następującego polecenia Exec, działa dobrze, ale nie działa w programie uruchamiającym :(

Exec=echo mypasswd | sudo -S gddccontrol
Eugene
źródło

Odpowiedzi:

17

NIGDY NIGDY nie używaj hasła zapisanego w .desktoppliku. To jest strasznie niebezpieczne.

Co więcej, nie można uruchamiać skomplikowanych poleceń w takim .desktoppliku, ale to już inny temat.

Co robić

Masz kilka opcji:

  1. Dodaj gddccontroldo sudoerspliku, jak wyjaśniono np . Tutaj . Można to zrobić, jeśli masz pewność, że aplikacja nie może być używana do złośliwych działań.

    Następnie użyj

    Exec=sudo gddccontrol
    

    w Exec=wierszu

  2. Inną opcją jest zastąpienie Exec=linii przez:

    Exec=gksu gddccontrol
    

    W takim przypadku po kliknięciu ikony pojawi się monit o podanie hasła za pomocą interfejsu GUI.
    Być może trzeba zainstalować gksu:

    sudo apt-get install gksu
    
Jacob Vlijm
źródło
nie ma innych sposobów bez edycji sudoers i gksu? ponieważ gksu pyta o hasło w dowolny sposób, ale kiedy leżę wieczorem na kanapie, chciałbym po prostu uruchomić gddccontrol za pomocą myszy, zmniejszyć jasność / kontrast i oglądać film bez wchodzenia na klawiaturę. Lepiej dam mojemu użytkownikowi dostęp do $ gddccontrol dev: / dev / i2c-4: Odmowa dostępu Chcę tylko w łatwy sposób bez bólu głowy zmienić jasność i kontrast w godzinach wieczornych :(
Eugene
1
@Eugene mogę sobie wyobrazić. W takim przypadku wybrałbym plik sudoers.
Jacob Vlijm,
1
Wolę pkexecponad gksu; Wydaje mi się, że był tam meta post.
kot
@cat pkexecnie działa na takich aplikacjach GUI. Konfiguracja jest bardziej skomplikowana, a gksudziała idealnie.
Jacob Vlijm,
Ale nie muszę dodatkowo instalować pkexec16.04.
Valentas,
4

Korzystanie sudoz definicji spowoduje wyświetlenie żądania hasła. Musisz udzielić użytkownikowi uprawnień do wykonywania. Nie jestem pewien, gdzie znajduje się ten program, ale ze względu na tę odpowiedź załóżmy, że tak /usr/bin/.

W terminalu uruchom to:

sudo chmod o+x /usr/bin/gddccontrol

Że komenda jest udzielenie o ther użytkowników (takich jak ty) prawo do e x ecute program bez potrzeby zgody.

Następnie w pliku .desktop użyj:

Exec=gddccontrol

źródło
0

Jestem przeciwny wpisywaniu hasła w zwykłym pliku tekstowym, więc mogę wymyślić dwa możliwe rozwiązania:

  1. dokonaj edycji ogólnosystemowej, aby każde polecenie wydane przez użytkownika za pomocą sudo było uruchamiane jako administrator, bez pytania o hasło. Możesz dowiedzieć się, jak w tej odpowiedzi

  2. Jeśli nie chcesz sudo, aby polecenia były zawsze wykonywane z monitem o hasło, najlepiej postępuj gksuprzed poleceniem, aby poprosić o hasło w oknie graficznym, zamiast zapisywać surowe hasło w pliku.

S.Mohsen sh
źródło