LoginSignup
1
1

More than 1 year has passed since last update.

Tomcat8.5系での出力ログのパーミッションをUMASKで設定する

Last updated at Posted at 2022-04-17

#確認条件
・Tomcat8.5系ではデフォルトのログ出力時のパーミッションが640となる。
・8.5より前はデフォルトで644。
・640:所有者以外は参照不可。
・644:所有者以外は参照可能。
・起動時シェルでUMASKの値を設定することで、デフォルト値を戻す。

##確認条件
・apache-tomcat-8.5.78で確認。
・Tomcatのシステムログ(Catalina.out)以外のアプリで出力するログもどうなるかも一緒に確認する。
・アプリログはlog4j2で確認。
・TomcatはCentOS7(Virtual Box)上に構築。

##詳細
何も設定してない場合
・出力されるログのパーミッションはすべて640。
 testlog.logはlog4j2のログです。
image.png

catalina.out
情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:       -Dorg.apache.catalina.security.SecurityListener.UMASK=0027

・catalina.out上もUMASK=0027と出ている。

UMASK設定追加

${CATALINA_HOME}/bin/startup.sh にUMASK追加。

startup.sh
export UMASK="0022"

systemctl start tomcat で起動

/etc/systemd/system/tomcat.serviceは特に変更なし。
※Umask=0022をここに追加するのも試したけど特に意味なしでした。
 また、/etc/init.d/の下の起動スクリプトで起動している場合などは、そちらにUMASK設定を追記する必要がありそうです。

/etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/local/tomcat/tomcat.pid
RemainAfterExit=yes

ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReStart=/usr/local/tomcat/bin/shutdown.sh;/usr/local/tomcat/bin/startup.sh

[Install]
WantedBy=multi-user.target

※参考
https://itsakura.com/java-log4j2-sample#s4
https://qiita.com/kitahara_/items/d8013693fd6479ae2d9c

結果

・ログの権限は一律644になったのでOK。
image.png

・catalina.out上もUMASK=0022と出るようになってました。

catalina.out
情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:       -Dorg.apache.catalina.security.SecurityListener.UMASK=0022

##感想

仕事でtomcatバージョンアップ時にログの権限が変わってるということがあったので、調べたことを備忘として書きました。
バージョンアップは小さな変更がよくあるので、振り回されがちです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1