Есть сервис написанный на Java. Работать он должен без прав root’а. Как этот сервис может получить данные доступ к которым есть только у root’а? Допустим что эти данные в процессе работы сервиса не меняются.
Например, можно было бы запускать сервис с правами root’а, а по завершению инициализации переключиться на нужного пользователя, но судя по всему в Java нет стандартных средств для переключения пользователя. Можно написать скрипт который будет запускать Java-сервис и передавать ему данные в каком-нибудь формате, например, на stdin. Есть еще варианты?