개발환경
OS: Ubuntu 16.04
WAS: Tomcat9
Framework: Spring boot
파일업로드, 다운로드 관련 기능을 만들다 보면 파일권한문제가 생길때가 있다.
일반적인 처리방법은 Tomcat 사용자를 생성하고 Tomcat 사용자에게 chown 명령어로
권한을 부여한다. 그런데 이번이슈는 권한을 777로 부여했음에도 파일업로드를 진행하면
File.io.IOException / permission denied 오류를 뱉어내고 있다.
시도
/uploads 폴더를 생성하고 모든권한을 tomcat 사용자에게 부여했다.
$ sudo mkdir /uploads
$ sudo chmod -R 775 uploads
$sudo chown tomcat.tomcat uploads
결과
File.io.IOException 오류가 나고있다.
열심히 구글링해봤지만 권한을 부여하는것 이외에는 찾을수없었다..
그러다 stackoverfloow에서 독특한 댓글을 발견했다. tomcat8.5 이상의 데비안/우분투에서 이러한 이슈가 발생하는것을
누군가 댓글로 남겼다. 그사람의 말로는 tomcat9.service 설정파일에서 ReadWrite 권한을 부여해야
tomcat이 해당폴더로 접근가능하다는 것이 었다.
그렇다면 tomcat9.service 파일은 어디에 존재할까..
$ sudo nano /etc/systemd/system/muti-user.target.wants/tomcat9.service
해당 파일을 nano 명령어로 열어보면 Security 설정에서
ReadWritePaths에 /uploads에 관한 패스설정이 없는것을 확인할수 있다.
제일하단에 추가한 후 재시작 명령어를 날리도록 하자..
$ sudo systemctl daemon-reload
$ sudo systemctl restart tomcat9
'WAS > Tomcat' 카테고리의 다른 글
[Tomcat] Http로 접근시 Https로 redirect 시키기 (0) | 2020.06.16 |
---|