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.