Tenho que alternar entre o Java 8 e o Java 13 para que as diferentes versões do Minecraft funcionem corretamente e, para fazer isso, preciso digitar sudo archlinux-java set java-8-openjdk ou sudo archlinux-java set java-13-openjdk – o problema é que quero transformar isso em um script simples de duplo clique que posso colocar na minha área de trabalho sem que ele solicite a senha .
Há algo que eu possa fazer chmod ou algo que o torne tal que este comando não requeira sudo?
Resposta
Seria uma abordagem mais segura / mais cautelosa não alterar o ambiente Java padrão em todo o sistema apenas para executar versões diferentes de um único programa.
Você pode, em vez disso, iniciar um programa com um PATH modificado para fazê-lo usar uma versão Java específica (como sugerido em Wiki do Arch Linux , onde archlinux-java está documentado):
$ PATH="/usr/lib/jvm/java-<version>-openjdk/bin${PATH:+:$PATH}" your_program
Se você usar um arquivo .desktop para iniciar seu programa, edite seu Exec chave :
Exec=env PATH="/usr/lib/jvm/java-<version>-openjdk/bin${PATH:+:$PATH}" your_program
Ou, alternativamente, usando a GUI, ajuste seu campo “Propriedades” → “Aplicativo”: “Comando”.
Se você realmente deseja permitir que um usuário execute sudo archlinux-java sem que uma senha seja solicitada, você pode adicionar
your_user ALL=(root) NOPASSWD: /usr/bin/archlinux-java
ao seu /etc/sudoers, após qualquer já presente your_user linhas. Lembre-se de usar visudo para fazer isso: ele verifica se há erros no arquivo sudoers antes de salvá-lo, reduzindo o risco de cometer sudo inutilizável.
Leituras adicionais: