ablog

不器用で落着きのない技術者のメモ

Tomcat 上のWebアプリケーションが作るディレクトリやファイルのパーミッションを制御する方法

vim /etc/init.d/tomcat

#!/bin/bash
#
# chkconfig: 35 80 20
# description:Tomcat 6.0.24
# Source function library.
. /etc/init.d/functions
export JAVA_HOME=/usr/local/jdk1.6.0_18
export CATALINA_HOME=/usr/local/tomcat6.0.24
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$CATALINA_HOME/bin

umask 077
http://iamapg.exblog.jp/9753496/

なるほど、Tomcat の起動スクリプトで umask を設定すればいいだけか。


ちょっとそれるけど、簡易テスト手順をメモメモ。

# 前提
#host2:/nfs/b は host1:/a/b/db に nfs でマウントされている。

# テストケース1
#   host1 の tomcat ユーザで host2 にディレクトリとファイルを作成し、
#   host2 の oracle ユーザでそのファイルに書込み、削除ができることを確認する。
(host1)
$ sudo -u tomcat umask 002;mkdir -p /a/b/db/c; touch /a/b/db/c/host1.txt
(host2)
$ sudo -u oracle echo `date` > /nfs/b/c/host1.txt
$ sudo -u oracle rm -fr /nfs/b/c

# テストケース2
#   host2 の oracle ユーザで host2 にディレクトリとファイルを作成し、
#   host1 の tomcat ユーザでそのファイルに書込み、削除ができることを確認する。
(host2)
$ sudo -u oracle umask 002;mkdir -p /nfs/b/c; touch /nfs/b/c/host2.txt
(host1)
$ sudo -u tomcat echo `date` > /a/b/db/c/host2.txt
$ sudo -u tomcar rm -fr /nfs/b/c