私は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
これについて何か考えはありますか?
ありがとう
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で使用されていないように見えますが、完全にはわかりません。)
これを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
を付与します
jsvcを使用してTomcatをデーモンプロセスとして起動する場合、jsvcコマンドラインで-umask引数を設定する必要があります。