Como faço para alterar o tempo de execução Java padrão do sistema sem “sudo”?

0

Desculpe pelo meu mau inglês, mas estou realmente tentando ser melhor. Está bem. Eu criei um novo comando / alias (changejava) no Ubuntu 12.04, e eu preciso pular "sudo password" somente quando eu escrevo "$ changejava". Se eu escrever "$ changejava" usando o terminal, o Ubuntu me mostra o que posso fazer. Eu só preciso pressionar 0, 1 ou 2. Mas se eu pressionar qualquer coisa, o terminal diz:

"update-alternatives: to use /usr/lib/jvm/java-6-sun/jre/bin/java to provide /usr/bin/java (java). update-alternatives: error: Could not create file '/var/lib/dpkg/alternatives/java.dpkg-tmp': Denied. "

Se eu tentar "$ sudo changejava", eu tenho: "Digite jessegaspar password", e a mágica acontece. Sem "sudo", não acontece. Eu tentei editar o / etc / sudoers com:

%sudo ALL=NOPASSWD: ALL

... No entanto, todos os usuários terão acesso à permissão total "sudo". : /: /

Obrigado.

    
por Jesse Gaspar 23.08.2012 / 19:58

2 respostas

4

Primeiramente, quero reiterar que você não precisa alterar o tempo de execução Java padrão do sistema para executar um programa usando um tempo de execução Java não padrão.

Por exemplo, o Eclipse e o NetBeans têm arquivos de configuração onde você pode especificar qual runtime Java deve usar.

Também típico de aplicativos Java é honrar a variável de ambiente $JAVA_HOME . Portanto, no shell, apenas execute JAVA_HOME=/usr/lib/jvm/java-6-sun/ foo e JAVA_HOME=/usr/lib/jvm/java-7-oracle/ bar para aplicativos foo e bar . Você pode até colocar isso em um script para não precisar digitá-lo toda vez.

Como você está focado em mudar o tempo de execução Java padrão do sistema, a documentação da Comunidade Ubuntu sobre o sudo é um lugar para ler: link

A página de manual (ou seja, man sudoers ) é outra: link

Você está correto em afirmar que não deseja o %sudo ALL=NOPASSWD: ALL em seu arquivo sudoers . Em vez disso, tente algo assim:

    jessegaspar caelum-sala1-9 = (root) NOPASSWD:/usr/local/bin/changejava

Isso pode ser mais restritivo do que você realmente quer, mas é um exemplo. É provavelmente uma boa prática listar o caminho completo para o comando, mas esse pode não ser o caminho para o seu script em seu sistema.

    
por dsh 24.08.2012 / 21:46
0

Abra a janela do terminal e digite:

sudo visudo

Na parte inferior do arquivo, (após " #includedir /etc/sudoers.d "), digite o seguinte:

username ALL=(ALL) NOPASSWD: ALL

Espero que ajude! Isso só funcionará com os comandos do terminal e as ações normais não serão afetadas.

    
por Leo 23.08.2012 / 20:24