У меня есть веб-приложение, которое работает как пользователь www. Однако в какой-то момент ему нужно прочитать файл из файловой системы Linux от имени пользователей Алисы и Боба.
Один из способов сделать это — запустить оболочку (Runtime.exec()) и вызвать исполняемый файл C setuid для изменения идентификатора пользователя и чтения файла.
Есть ли способ добиться этого с помощью JNI (веб-приложение должно работать как www, а не как root)? Я попытался написать программу Java JNI, которая вызывает собственные методы в Linux (я сделал эти собственные методы принадлежащими root и установил биты setuid). Но если я не запускаю программу Java от имени пользователя root, она не позволяет мне переключать идентификаторы пользователей. Есть ли что-то, чего мне не хватает? Есть ли способ добиться этого?
Спасибо!