-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개의 답변이 있습니다.
/dev/null 은 아무것도 없는 거 아닌가요?
cat /dev/null ==> 아무것도 없는 것을 읽어라
> catalina.out ==> 읽은 내용(아무내용 없음)을 catalina.out 에 써라...
이렇게 해서 로그를 지우는 거 같습니다..
wansoo | 약 4년 전
wansoo | 약 4년 전
빨간신발 | 약 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로 부터 읽어 들이려는 이유가 뭘까요..? ^^;;
방금 여러가지 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년 전
빨간신발 | 약 4년 전
해당 톰캣 폴더 권한을 확인해보세요~root권한이 아닌 유저 권한이 읽기 쓰기 삭제 권한이 부여 되었는지 확인 해보셔야 합니다.