Разрешение на запись Tomcat apache загрузка пользователем сервера - PullRequest
1 голос
/ 14 июля 2020

Когда пользователь загружает изображение, файл создается в "/ var / www/example.com/uploads" веб-приложением tomcat, так что apache может обслуживать изображение. Однако группа / пользователь tomcat создает файл, поэтому он недоступен через example.com/uploads/image.jpg, если я не изменю вручную разрешения на чтение, тогда файл больше не запрещен. Но каждый файл создается без прав на чтение. Я плохо владею ubuntu и не знаю, нужно ли что-то менять в сервлете java или в папке / группе / пользователе. Любая помощь будет принята с благодарностью.

-rw-r----- 1 tomcat tomcat 120264 Jul 14 19:26 second-image.jpg
-rw-r--r-- 1 tomcat tomcat 172853 Jul 14 19:05 image.png

Изменить: файл отправляется как данные формы multipart config. После проверки типов, размера и т. Д. c. Он записывается в систему просто как:

Path imageDir = Path.of("/var/www/example.com/uploads");
Path imageFile = Files.createFile(imageDir.resolve(fileName).toAbsolutePath());
part.write(imageFile.toString());

1 Ответ

1 голос
/ 14 июля 2020

Код вашего приложения уже вызывает метод, который может устанавливать разрешения, но не предоставляет для этого параметра. Вы можете прочитать в этом руководстве по атрибутам файлов , чтобы увидеть пример настройки прав доступа к файлам. Я предполагаю, что вы захотите создать разрешения из строки, поскольку вы уже работаете с форматом:

Set<PosixFilePermission> perms =
PosixFilePermissions.fromString("rw-------");
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);
Files.createFile(file, attr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...