Как я изменяю Среду выполнения Java по умолчанию в масштабе всей системы без “sudo”?

Извините за мой плохой английский язык, но я действительно пытаюсь быть лучше. Хорошо. Я создал новую команду/псевдоним (changejava) на Ubuntu 12.04, и я должен пропустить "sudo пароль" только, когда я пишу "$changejava". Если я пишу "$changejava" с помощью терминала, Ubuntu показывают мне, что я могу сделать. Я просто должен нажать 0, 1 или 2. Но если я нажимаю что-нибудь, терминал говорит:

"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. "

Если я пробую "$sudo changejava", я имею: "Введите jessegaspar пароль", и волшебство происходит. Без "sudo", не происходит. Я пытался отредактировать/etc/sudoers с:

%sudo ALL=NOPASSWD: ALL

... Однако у всех пользователей будет доступ к общему разрешению "sudo".:/:/

Спасибо.

0
задан 24 August 2012 в 19:21

2 ответа

Сначала я хочу повторить, что Вы не должны изменять Среду выполнения Java по умолчанию в масштабе всей системы для выполнения программы с помощью Среды выполнения Java не по умолчанию.

, Например, Eclipse и NetBeans имеют конфигурационные файлы, где можно указать, какую Среду выполнения Java он должен использовать.

Также типичный для JAVA-приложений должен соблюдать $JAVA_HOME переменная среды. Таким образом в оболочке, просто выполнение JAVA_HOME=/usr/lib/jvm/java-6-sun/ foo и JAVA_HOME=/usr/lib/jvm/java-7-oracle/ bar для приложений нечто и панель . Можно даже поместить это в сценарий, таким образом, Вы не должны вводить его каждый раз.

<час>

, Так как Вы фокусируетесь на изменении Среды выполнения Java по умолчанию в масштабе всей системы, документация Сообщества Ubuntu относительно sudo является одним местом для чтения: https://help.ubuntu.com/community/Sudoers

страница справочника (т.е. man sudoers) является другим: http://www.sudo.ws/sudo/sudoers.man.html

Вы корректны в заявлении, что Вы не хотите %sudo ALL=NOPASSWD: ALL в Вашем файл sudoers . Вместо этого попробуйте что-то вроде этого:

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

Это может быть более строго, чем Вы действительно хотите, но это - пример. Это - вероятно, хорошая практика для списка полного пути к команде, но это не может быть путем к сценарию в системе.

4
ответ дан 21 October 2019 в 12:43

Открытое окно терминала и тип:

sudo visudo

В нижней части файла, (после" #includedir /etc/sudoers.d") вводят следование:

username ALL=(ALL) NOPASSWD: ALL

terminal

Hope это помогает! Это будет только работать с терминальными командами нормальная привычка действий быть затронутым.

0
ответ дан 21 October 2019 в 12:43

Другие вопросы по тегам:

Похожие вопросы: