Come fare in modo che il set archlinux-java … non richieda sudo?

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:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *