Devo rimbalzare tra Java 8 e Java 13 affinché diverse versioni di Minecraft funzionino correttamente e per farlo è necessario digitare sudo archlinux-java set java-8-openjdk o sudo archlinux-java set java-13-openjdk – il problema è che voglio trasformarlo in un semplice script a doppio clic che posso inserire sul desktop, senza che mi chieda la password .
Cè qualcosa che posso chmod o qualcosa che lo renda tale che questo comando non “richiede sudo?
Risposta
Sarebbe un approccio più sicuro / più cauto non modificare lambiente Java predefinito a livello di sistema solo per eseguire versioni diverse di un singolo programma.
Puoi, invece, avviare un programma con un PATH modificato per fare in modo che utilizzi una versione Java specifica (come suggerito nella Arch Linux Wiki , dove archlinux-java è documentato):
$ PATH="/usr/lib/jvm/java-<version>-openjdk/bin${PATH:+:$PATH}" your_program
Se utilizzi un file .desktop per avviare il programma, modifica il suo Exec chiave :
Exec=env PATH="/usr/lib/jvm/java-<version>-openjdk/bin${PATH:+:$PATH}" your_program
Oppure, in alternativa, utilizzando la GUI, modifica il campo “Proprietà” → “Applicazione”: “Comando”.
Se davvero vuoi consentire a un utente di eseguire sudo archlinux-java senza che venga richiesta una password, puoi aggiungere
your_user ALL=(root) NOPASSWD: /usr/bin/archlinux-java
al tuo /etc/sudoers, dopo qualsiasi già presente your_user righe. Ricorda di utilizzare visudo per farlo: controlla il file sudoers per errori prima di salvarlo, riducendo il rischio di fare sudo inutilizzabile.
Ulteriori letture: