Java System.getProperty с sudo получает root

Этот вопрос лучше задать здесь, чем при переполнении стека, поскольку он больше связан с Ubuntu, чем с реальным языком программирования. Вот два разных способа получить путь к файлу. Первый — указать путь по умолчанию и жестко его запрограммировать. Второй вариант — использовать предлагаемый в Java язык программирования. Для большего контекста я использую Ubuntu 14.04 и Java 17 с maven. К сожалению, я не могу изменить Ubuntu.

Я развернул файл jar в Ubuntu. Проблема в том, что я должен запустить файл jar с помощьюsudoчтобы получить привилегии sudo. Но в этом случаеPaths.get(System.getProperty("user.home"))вернетсяroot/homeвместоuser/home.

Есть ли у вас идеи, как мне поступить в этом случае?

1 ответ

Выясните, почему потребности (root), и могли бы «возможности» заменитьsudo.

Теперь хак:

Читатьman sudo sudoers sudoedit. Определите переменную среды для хранения домашнего каталога, сообщитеsudoersдля экспорта его в вызываемую среду. Используйте для этого новую переменную среды, не используйте$HOME. Делать:

      export userhome="$HOME"
sudo ... .jar

и обратитесь кuserhomeпеременная среды в.jar.

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