SharedIT | 묻고 답하기(AMP)

tomcat catalina.out 로그 삭제 시 권한문제


-rw-r--r-- 1 root root 4577722680 3월 18 10:34 catalina.out


[ㅁㅁㅁ@Fund logs]$ sudo cat /dev/null > catalina.out

-bash: catalina.out: 허가 거부

[ㅁㅁㅁ@Fund logs]$ su

암호:

[root@Fund logs]# cat /dev/null > catalina.out

[root@Fund logs]# df -h



위와같은 상황인데...


일반계정으로

sudo cat /dev/null > catalina.out

은 안되고..

root계정으로

cat /dev/null > catalina.out

은 가능하네요...


혹시 왜 그런지 질문드려요....

4개의 답변이 있습니다.

빨간신발
  0 추천 | 약 4년 전

/dev/null 은 아무것도 없는 거 아닌가요? 


cat /dev/null ==> 아무것도 없는 것을 읽어라 


> catalina.out ==> 읽은 내용(아무내용 없음)을 catalina.out 에 써라... 


이렇게 해서 로그를 지우는 거 같습니다..

wansoo | 약 4년 전

파일을 초기화 시키기 위해 사용하는 가 보네요~ ^^;; 그냥 지우고 다시 하나 만들어도 될거 같은데... sudo로 수행 시키려면 cat /dev/null > catalina.out을 스크립트에다 넣어두고, sudo 명령을 사용해서 스크립트를 실행시키는 형식으로 사용하면 될것 같네요.

wansoo | 약 4년 전

sudo sh -c "cat /dev/null > catalina.out" 과 같이 실행시켜도 되겠고요~ ^^

빨간신발 | 약 4년 전

catalina.out을 삭제하려면 톰켓을 중지해야 합니다... 그래서 무중단으로 삭제하려고 저렇게 하는 것으로 알고 있습니다.
wansoo
  0 추천 | 약 4년 전

sudo 명령이 | (pipe)도 넘어가지 못하네요.

방금 시험삼아 sudo cat /dev/null | touch catalina.out 명령을 줘 받는데...

역시나 pipe 뒤에 있는 touch catalina.out가 실행되지 못하네요.

sudo cat /dev/null | sudo touch catalina.out 이라고 해 줘야 실행될 수 있네요.

아마, 파이프나 리다이렉터나 비슷할걸로 보여집니다.


그런데... 궁금한건...

휴지통과 같은 /dev/null이 출력 장치로만 사용하지 않나요??

/dev/null로 부터 읽어 들이려는 이유가 뭘까요..? ^^;;

wansoo
  0 추천 | 약 4년 전

방금 여러가지 Test를 해 봤는데요~

sudo 로 인한 root 권한이 redirector인 > 를 넘어 전달되지는 못하는 것 같네요.


sudo touch catalina.out 이라 명령을 주면  성공적으로 실행되고,

sudo cat /dev/null 이라고 명령을 줘도 성공적으로 실행되고요.

이걸 본다면 sudo로 인해 catalina.out이나 /dev/null에 접근할 수 있는 충분한 권한을 가질 수 있다는 의미가 되겠고요.

단지,

sudo cat /dev/null > catalina.out 명령을 수행했을 때 권한 오류가 발생하게 되는데...

이때 발생하는 권한 오류가 cat /dev/null에서 발생하는 것이 아니라 > catalina.out에서 발생한다고 볼 수 있을 것 같고요.

이로 인해 내릴 수 있는 결론은

sudo로 인한 권한 변경이 > 뒤로는 전달되지 않는다라고 할 수 있을 것 같습니다.

wansoo | 약 4년 전

sudo가 실행 명령에 권한을 주는 것이기 때문에 > 뒤에 있는 파일에 대한 권한은 얻지 못하는게 아닌가 싶기도 하고요~

빨간신발 | 약 4년 전

와... 명쾌한 설명입니다.. 감사합니다..
차바라기
  0 추천 | 약 4년 전

해당 톰캣 폴더 권한을 확인해보세요~root권한이 아닌 유저 권한이 읽기 쓰기 삭제 권한이 부여 되었는지 확인 해보셔야 합니다.