Comment faire pour que archlinux-java set … ne nécessite pas sudo?

Je dois rebondir entre Java 8 et Java 13 pour que différentes versions de Minecraft fonctionnent correctement, et pour cela, je dois taper sudo archlinux-java set java-8-openjdk ou sudo archlinux-java set java-13-openjdk – le problème est que je veux transformer cela en un simple script double-cliquable que je peux mettre sur mon bureau et ne pas me demander le mot de passe .

Y a-t-il quelque chose que je puisse chmod ou quelque chose qui fait que cette commande ne nécessite pas sudo?

Réponse

Ce serait une approche plus sûre / plus prudente de ne pas changer lenvironnement Java par défaut à léchelle du système juste pour exécuter différentes versions dun même programme.

Vous pouvez, à la place, démarrer un programme avec un PATH modifié pour lui faire utiliser une version Java spécifique (comme suggéré dans le Arch Linux Wiki , où archlinux-java est documenté):

 $ PATH="/usr/lib/jvm/java-<version>-openjdk/bin${PATH:+:$PATH}" your_program  

Si vous utilisez un fichier .desktop pour lancer votre programme, modifiez son Exec clé :

 Exec=env PATH="/usr/lib/jvm/java-<version>-openjdk/bin${PATH:+:$PATH}" your_program  

Ou, en utilisant linterface graphique, ajustez son champ « Propriétés » → « Application »: « Commande ».


Si vous vraiment permettre à un utilisateur dexécuter sudo archlinux-java sans être invité à entrer un mot de passe, vous pouvez ajouter

 your_user ALL=(root) NOPASSWD: /usr/bin/archlinux-java  

à votre /etc/sudoers, après tout déjà présent your_user lignes. Noubliez pas dutiliser visudo pour ce faire: il vérifie le fichier sudoers pour les erreurs avant de lenregistrer, ce qui réduit le risque de faire sudo inutilisable.

Lectures complémentaires:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *