Certos recursos exigem elevações de raiz. Interação USB de baixo nível é uma delas, eu experimentei o mesmo quando eu queria usar o meu robô LEGO NXT.
Primeiro de tudo, se o programa só funciona com sudo, mova-o para longe de sua casa. Sugiro movê-lo para /opt/jlink/
ou algo parecido
Para continuar a ter cd
no diretório executável, adicione-o ao banho global em /etc/bash.bashrc
, em vez de bashrc da sua casa. Além disso, defina um alias que execute automaticamente o programa com elevações de raiz. As adições ao arquivo podem ser assim:
export PATH=$PATH:/opt/jlink #or wherever you moved it
alias JLinkExe='sudo /opt/jlink/JLinkExe'
Agora você pode executar o programa apenas digitando JLinkExe
(você pode até atribuir um nome mais fácil de digitar no alias, por exemplo, simplesmente alias jlink='sudo /opt/jlink/JLinkExe'
).
No entanto, sua senha ainda será solicitada, pois o programa ainda exige a elevação da raiz. Para contornar isso, você pode criar uma entrada na sua configuração do sudo. Para isso, execute sudo visudo
e adicione essa linha ao final do arquivo
mkru ALL=(ALL) NOPASSWD: /opt/jlink/JLinkExe
Depois de salvar isso, você (e somente você, ou seja, usuário mkru
), não deve ser solicitado a fornecer as elevações de raiz do programa mais. Lembre-se de que ainda estará sendo executado com privilégios elevados.
OBSERVAÇÃO: Se o programa tiver uma GUI, crie o alias como alias jlink='sudo gksudo /opt/jlink/JLinkExe'
para evitar que atrapalhe as propriedades em seu diretório pessoal.