Я думаю, вы должны начать с понимания разрешений файловой системы Linux:
Обычно:
- корневая папка / принадлежит root (сюрприз), а не отдельным пользователям.
- отдельные пользователи не имеют право создавать или изменять файлы непосредственно в /.
Итак, во-первых, ваша идея создать обычного пользователя для создания файлов в / просто: неправильно. Вы не должны открывать эту запертую дверь.
Теперь, чтобы все еще быть в состоянии сделать это:
- запускать всю JVM с помощью sudo (как корневой процесс): очевидно, это открывает целую банку червей, связанных с безопасностью. Итак: не делай этого. Потому что все, что происходит в этой JVM, делается с правами
root
.
- альтернативно: вместо использования Java API для создания этого файла, вы можете запустить системную команду, например
sudo touch /root/newfile.txt
, а затем использовать что-то вроде sudoers , чтобы вас не спрашивали пароль.
Другими словами: либо вы должны запустить всю JVM как корневой процесс (не рекомендуется), либо вы должны сделать системный вызов с правами root.