【发布时间】:2018-03-15 23:30:38
【问题描述】:
问题:我正在寻找一种方法来配置 Java 以默认创建具有特定权限集的新文件。
问题:我有一个使用以下内容的 Spring Boot 应用程序:
- Log4J2 用于日志记录
- H2 用于平面文件数据库
- 用于缓存实体的 Ehcache
所有这些库都在本地文件系统上创建新文件,当它们这样做时,它们会生成全局可写文件(666 用于文件,777 用于目录)。我在 macOS 10.13(用户拥有“umask 0022”)和 Amazon Linux(用户拥有“umask 0002”)上看到了这一点。
如果我直接管理文件的创建,我可以使用PosixFilePermission 做我需要的事情,但是由于文件创建被委托给库,我没有这个机会。我可能会设置一个计时器来发现新文件并直接设置权限,但我并不喜欢这种方法。
Log4J2 v2.9 向RollingFileAppender 添加了一个 filePermissions 字段,因此我希望解决我的问题之一,但我无法为 H2 或 Ehcache 找到类似的东西。理想情况下,为了简单和面向未来,我希望在 JVM/Boot 级别执行此操作。
【问题讨论】:
-
对于否决票,如果您对此问题有任何反馈,我将不胜感激。