web-dev-qa-db-ja.com

Tomcat.serviceを介してTomcat8のumaskを設定します

私はTomcat 8インスタンスにカスタムumaskを設定しようとしています、見られたようにsystemd TomcatユニットでUMaskディレクティブを使用してそれを良い方法にしようとしました here 運がなければ。

会社の開発者がTomcat /アプリケーションログにアクセスする必要があり、それらがTomcatユーザーと同じグループにないため、022 umaskを設定したいのですが...

おかしなことは、systemd docが言うことです:

ファイルモード作成マスクを制御します。 8進表記のアクセスモードを使用します。詳細については、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

これについて何か考えはありますか?

ありがとう

12
Pier

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

(それは systemdのUMask がTomcatで使用されていないように見えますが、完全にはわかりません。)

15
mjtecka

これを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を付与します

1
Patrick McMahon

jsvcを使用してTomcatをデーモンプロセスとして起動する場合、jsvcコマンドラインで-umask引数を設定する必要があります。

0
Philip