2017-02-01 35 views
3

我想为tomcat8实例设置一个自定义的umask,试图通过在systemd的tomcat单元中使用UMask指令来使其成为好的方式,如here没有运气。通过tomcat.service设置为tomcat8的umask

我想设置一个022的umask导致公司开发需要访问的tomcat /应用程序日志,他们是不是在同一组的tomcat的用户....

疯狂的事情是, systemd doc说:

控制文件模式创建掩码。以八进制符号表示访问模式。有关详细信息,请参阅umask(2)。默认为0022

但日志(应用程序/ Tomcat)的设置为640(而不是预期的755):

-rw-r----- 1 top top 21416 Feb 1 09:58 catalina.out 

我的服务文件:

# Systemd unit file for tomcat 
[Unit] 
Description=Apache Tomcat Web Application Container 
After=syslog.target network.target 

[...] 

User=top 
Group=top 
UMask=0022 

[Install] 
WantedBy=multi-user.target 

这个有什么想法?

感谢

回答

4

尝试增加UMASK作为一个环境变量到Tomcat的服务文件:

[Service] 
... 
Environment='UMASK=0022' 
... 

默认catalina.sh正在检查环境的$ UMASK:

# Set UMASK unless it has been overridden 
if [ -z "$UMASK" ]; then 
    UMASK="0027" 
fi 
umask $UMASK 

(在我看来, ,Tomcat没有使用UMask from systemd,但我不完全确定。)

+0

感谢输入mjtecka我给它一个尝试,只要我有时间,这,我现在转到另一个问题,我会确保在这里复出并接受你的答案,如果这样的话! – Pier

+0

这个答案是正确的,应该这样标记。 systemd的UMask被tomcat忽略。此更改的工作原理,只需更改在catalina.sh – Tadgh

1

我想你可以通过执行以下操作使用systemd实现这一目标:

~]# mkdir -p /etc/systemd/system/tomcat.service.d 
~]# echo -e "[Service]\nUMask=0022" >/etc/systemd/system/tomcat.service.d/custom-umask.conf 
~]# systemctl daemon-reload 
~]# systemctl restart tomcat 

/etc/systemd/system/tomcat.service.d/umask-user.conf应该覆盖默认值。

来源:https://access.redhat.com/solutions/2220161

PS:的0022 umask命令将使文件0644权限和目录0755

+0

中找到的默认umask为我工作,谢谢! – ekawas