Como executar o ícone .desktop no sudo

11

Eu criei um ícone na área de trabalho para o gddccontrol, mas para executá-lo, preciso executá-lo no sudo. Existe uma maneira de executar um comando no ícone da área de trabalho como,

sudo -pPASSWORD gddccontrol

então não vai me pedir a senha no terminal?

Eu só quero clicar e executá-lo com permissões sudo.

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

Quando executo o ícone no terminal com o seguinte comando Exec, ele funciona bem, mas não no Launcher :(

Exec=echo mypasswd | sudo -S gddccontrol
Eugene
fonte

Respostas:

17

NUNCA use sua senha, armazenada em um .desktoparquivo. É terrivelmente inseguro.

Além disso, você não pode executar comandos complicados em um .desktoparquivo assim, mas esse é outro assunto.

O que fazer

Você tem poucas opções:

  1. Adicione gddccontrolao sudoersarquivo, conforme explicado, por exemplo, aqui . Isso pode ser feito se você tiver certeza de que o aplicativo não pode ser usado para fazer coisas maliciosas.

    Então use

    Exec=sudo gddccontrol
    

    na Exec=linha

  2. Outra opção é substituir a Exec=linha por:

    Exec=gksu gddccontrol
    

    Nesse caso, depois de clicar no ícone, você será solicitado a inserir sua senha via GUI.
    Você possivelmente precisa instalar gksu:

    sudo apt-get install gksu
    
Jacob Vlijm
fonte
sem outras maneiras sem editar sudoers e gksu? porque gksu tem alguma maneira de pedir senha, mas quando estou deitado no sofá à noite, eu gostaria de rodar o gddccontrol com o mouse para diminuir o brilho / contraste e continuar assistindo filmes sem chegar ao teclado. seria melhor conceder ao meu usuário acesso ao $ gddccontrol dev: / dev / i2c-4: permissão negada. Eu só quero uma maneira fácil, sem dor de cabeça, de alterar o brilho e o contraste durante a noite :(
Eugene
1
@ Eugene eu posso imaginar. Eu iria para o arquivo sudoers nesse caso.
Jacob Vlijm
1
Prefere pkexecsobre gksu; Eu acredito que houve um meta post sobre isso.
gato
O @cat pkexecnão está sendo executado em aplicativos GUI exatamente assim. É mais complicado de configurar, enquanto gksufunciona perfeitamente.
Jacob Vlijm
Mas não preciso instalar adicionalmente pkexecno 16.04.
Valentas 5/17
4

O uso sudopor definição solicitará uma solicitação de senha. O que você precisa fazer é conceder permissões de execução ao seu usuário. Não tenho certeza de onde esse programa está localizado, mas, para obter esta resposta, vamos supor que esteja /usr/bin/.

Em um terminal, execute o seguinte:

sudo chmod o+x /usr/bin/gddccontrol

Esse comando está concedendo o utras usuários (como você) o direito de e x ecute o programa sem necessidade de permissão.

Em seguida, no arquivo .desktop, basta usar:

Exec=gddccontrol

fonte
0

Sou contra a senha codificada em um arquivo de texto sem formatação, para pensar em duas soluções possíveis:

  1. faça uma edição em todo o sistema para que todos os comandos emitidos pelo usuário com o sudo sejam executados como superusuário sem solicitar a senha. Você pode descobrir como nesta resposta

  2. Se você não deseja que os sudocomandos sejam sempre executados com o prompt de senha, use as práticas recomendadas gksuantes do comando para solicitar a senha em uma janela gráfica em vez de gravar sua senha bruta em um arquivo.

S.Mohsen sh
fonte