解决Java程序在Linux系统中创建文件或者文件夹后权限不足的问题

Tomcat 需要 8 以及以上

我在Java程序里面有很多生成文件的功能,比如用户上传文件、将数据生成xml文本等。我发现生成的文件权限全是:-rw-r—,而文件的拥有者是 root,这样就只有root用户组的才有读取权限。

Linux系统为了安全考虑,默认创建文件的最高权限为666,而创建文件夹的最高权限为777,系统通过变量umask来控制创建文件的权限问题。

我们假设设置 umask 的值为 025 时,则创建的文件权限为 641,即权限是通过最高权限减去 umask 的值来控制的。

我们可以通过修改 tomcat 的 catalina.sh 配置文件来设置 umask 的值。

tomcat的umask的默认设置是:

if [ -z "$UMASK" ]; then
    UMASK="0027"
fi
umask $UMASK

把0027修改成0000,那么生成的文件和文件夹就是默认权限了:

if [ -z "$UMASK" ]; then
    UMASK="0000"
fi
umask $UMASK

技 术 无 他, 唯 有 熟 尔。
知 其 然, 也 知 其 所 以 然。
踏 实 一 些, 不 要 着 急, 你 想 要 的 岁 月 都 会 给 你。


  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值