리눅스 톰캣 파일 권한 문제 - 읽기가 안될 때
오류 내용
톰캣 8 → 9로 변경 하면서 설정을 그대로 하고 애플리케이션을 돌렸는데
애플리케이션에서 파일 생성하는 부분에서 생성은 잘 되는데 읽기가 안됨.
파일 리스트를 ls로 보니깐
1
2
-rw-r--r-- 1 test test 10000 7월 15 15:30 test.txt // 톰캣 8
-rw-r----- 1 test test 10000 7월 15 15:40 test2.txt // 톰캣 9
이런 식으로 파일이 생성되어 있음.
리눅스 권한
리눅스 파일(폴더) 권한은 앞에서부터 다음과 같음
r: 읽기 (4) , w:쓰기 (2), x:실행 (1)
rwx / rwx / rwx -> 소유자/그룹/그 외
그래서
1
chmod 755 test.txt
이렇게 쓰면 권한을 소유자/그룹/그 외 순으로 rwx/rx/rx 라고 주겠다는 의미다.
그럼 오류 내용에서
-rw-r–r– 이건 6/4/4 이고
-rw-r—– 이건 6/4/0 이다.
해결 방법
이제 톰캣이 파일을 생성, 이동 할 때 뭔가 권한이 안 맞다는 걸 알았으니 이걸 설정해 주면 될 듯 하다.
이 수정 방법은
bin/catalina.sh 에 UMASK를 수정해 주는 것이다.
1
2
3
4
5
6
7
8
9
10
11
..
# 대략 290line
# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
UMASK="0027"
fi
umask $UMASK
...
기본이 0027로 되어있다.
이 의미는 파일을 만들 때 666-027 = 750으로 만들겠다는 것이다. (파일 : 666 / 폴더 : 777)
그래서 파일이 그 외 사용자에서 읽기 권한이 없어서 로드가 안됐다.
그럼 이제 이 UMASK="0027" 를 0022로 변경하면
666-022 = 644 이기 때문에 그 외 사용자에 읽기 및 실행 권한이 부여 된다.
1
2
3
4
5
# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
UMASK="0022"
fi
umask $UMASK
이렇게 하고 파일을 다시 생성해 보면 이제 권한이
-rw-r---r-- 즉 644로 생성 된다
댓글남기기