Как изменить владельца файла, созданного из веб-приложения Java, развернутого в Wildfly? - PullRequest
0 голосов
/ 16 мая 2019

Я занимаюсь разработкой веб-приложения на Java, оно развернуто в Wildfly 15. Wildfly запускается с определенным пользователем (wildfly или jboss), приложение создает файл (.docx), например: stuff.docx в определенной директории/ opt / documents, этот каталог передается другому пользователю (lool).

Пользователь "lool" запускает другое приложение (loolwsd LibreOffice Web) для редактирования текста, но имеет некоторые строгие права доступа и должен быть владельцемфайлы.Я добавил пользователя wildfly в группу редактора и изменил права доступа группы на 775 в каталоге и файле, но редактор не работает правильно.

Я пытался сменить владельца с помощью Java NIO, но выбрасывал «Операция не разрешена»

Пример:

Path path = Paths.get(sPath);
FileOwnerAttributeView foav = Files.getFileAttributeView(path, FileOwnerAttributeView.class);

UserPrincipal owner = foav.getOwner();
logger.info("Original owner  of  " + path + "  is " + owner.getName());

FileSystem fs = FileSystems.getDefault();
UserPrincipalLookupService upls = fs.getUserPrincipalLookupService();

UserPrincipal newOwner = upls.lookupPrincipalByName("lool");
foav.setOwner(newOwner);

UserPrincipal changedOwner = foav.getOwner();
logger.info("New owner  of " + path + " is %s%n" + changedOwner.getName());

Когда я создаю файл из Wildfly, созданный wildfly, яхочу сменить пользователя после этого процесса на редактора пользователя.Как сменить владельца файла с java (в wildfly) безопасно?

1 Ответ

0 голосов
/ 17 мая 2019

Я думаю, что вы можете включить ACL в файловой системе и предоставлять разрешения другим пользователям с помощью команды setfacl

Примерно так:

setfacl -m d:g:<groupname here>:rwx /shome/path

d - это правило по умолчанию.Все новые материалы в этой папке будут иметь эти разрешения.

g - group

...