Como executar um único lançador como root sem senha?

0

Eu quero rodar um arquivo executável como root clicando em um ícone. Eu tenho o seguinte arquivo da área de trabalho ( test.desktop ) no lugar:

[Desktop Entry]
Version=1.0
Name=Test Program      
Comment=Open test program
Exec=sudo taskset -c 7 /home/username/Desktop/folder1/test_program %f
Icon=/home/username/Desktop/folder1/image.png
Terminal=true
Type=Application
Categories=Utility;Application;

Isso funciona, mas toda vez que clico no ícone, é necessário que eu digite minha senha, que está ficando cansativa. Eu quero este ícone para executar este programa de um programa como root sem um prompt de senha. Eu não quero desativar o prompt de senha para todos os comandos sudo .

test_program acima é um executável que requer que o status do root seja executado corretamente.

Além disso, se eu alterar a linha Exec= acima para

Exec=gksudo -k -u root taskset -c 7 /home/username/Desktop/folder1/test_program %f

o programa não roda, mas abre o terminal e fecha o terminal imediatamente.

Como posso fazer isso ser executado como root sem colocar minha senha toda vez?

Requested Edit # 1: Meu arquivo de sudo editado é fornecido abaixo.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
ALL     ALL=NOPASSWD: /home/username/Desktop/folder1/test_program

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
    
por BFranks 16.08.2016 / 21:20

1 resposta

3
ALL     ALL=NOPASSWD: /home/username/Desktop/folder1/test_program

Este não é o comando que você está tentando executar como sudo . O comando é:

taskset -c 7 /home/username/Desktop/folder1/test_program

(Se você clicar no lançador, o %f estará vazio e você poderá removê-lo também)

Portanto, você precisa corrigir o arquivo sudoers , mas tenha em mente que você precisa usar caminhos absolutos como apontado em esta resposta :

ALL     ALL=NOPASSWD: /usr/bin/taskset -c 7 /home/username/Desktop/folder1/test_program

Como observação, essa configuração permite que todos os usuários executem taskset com o argumento fornecido com sudo . Isso pode ou não ser o que você quer.

    
por Andrea Lazzarotto 17.08.2016 / 17:35