У меня есть исполняемый файл Java, который принимает аргументы командной строки для запуска приложений, защищенных от root, на моем компьютере с Linux.У нас есть отдельные учетные записи пользователей, которым предоставлен доступ sudo для запуска единственного исполняемого файла Java, который пользователь затем может использовать для запуска приложений, защищенных от корня.Я понимаю, что sudo заключается в том, что пользователь принимает корневую «роль» во время одного вызова и любых последующих вызовов после него (то есть вызовов, которые исполняет Java exec для приложений).Это работает для большинства моих приложений, но только частично работает для других.В частности, внешние приложения, которые иногда запускаются, работают некорректно и, по-видимому, выдают ошибки, из-за которых они не могут открывать файлы (которые доступны для чтения всем).Если я запускаю исполняемый файл с правами root, исполняемый файл и последующие приложения работают нормально, поэтому я знаю, что у него есть что-то делать с / sudo.
Я могу предоставить более подробную информацию, если необходимо, но проверяю, знает ли кто-нибудь, изменяется ли sudoпроблемы среды или времени выполнения, о которых я не знаю.
ОБНОВЛЕНИЕ:
Файлы конфигурации находятся в читаемых каталогах.Чтобы проверить наверняка, я сделал бинарные файлы, которые Java exec пытается запустить для чтения, доступными для всех.Затем из своей учетной записи я запускаю Java Exec (без sudo), и приложение работает нормально.Затем я защищаю только двоичные файлы root и запускаю Java exec с помощью sudo, и запуск приложения завершается неудачно и выдает ошибку типа:
"устройства записи: не удается открыть edtrecorder.cfg"
Этот файл и его каталог доступны для чтения всем.