일반 유저가 root님의 파일을 지울 수 있나요?
글쓴이: ELT! / 작성시간: 수, 2004/09/29 - 9:15오후
일반 유저가 root님의 파일을 지우려고 시도했습니다..
작업 디렉토리는 sticky bit가 세팅되어 있는 당나귀의 incoming 디렉토리 입니다..
strace rm -i ./z
결과는 성공..
access("./z", W_OK) = -1 EACCES (Permission denied) lstat64("./z", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 write(2, "rm: remove write-protected regul"..., 53rm: remove write-protected regular empty file `./z'? ) = 53 fstat64(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40454000 read(0, y "y\n", 1024) = 2 open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=21512, ...}) = 0 mmap2(NULL, 21512, PROT_READ, MAP_SHARED, 3, 0) = 0x40455000 close(3) = 0 unlink("./z") = 0 exit_group(0) = ?
이번엔 /bin/cp 파일을..
strace rm -i /bin/cp
결과는 실패..
access("/bin/cp", W_OK) = -1 EACCES (Permission denied) lstat64("/bin/cp", {st_mode=S_IFREG|0755, st_size=54380, ...}) = 0 write(2, "rm: remove write-protected regul"..., 51rm: remove write-protected regular file `/bin/cp'? ) = 51 fstat64(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40454000 read(0, y "y\n", 1024) = 2 open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=21512, ...}) = 0 mmap2(NULL, 21512, PROT_READ, MAP_SHARED, 3, 0) = 0x40455000 close(3) = 0 unlink("/bin/cp") = -1 EACCES (Permission denied) write(2, "rm: ", 4rm: ) = 4 write(2, "cannot remove `/bin/cp\'", 23cannot remove `/bin/cp') = 23 write(2, ": Permission denied", 19: Permission denied) = 19 write(2, "\n", 1 ) = 1 exit_group(1)
제가 뭘 몰라서 그런가요??
** 디렉토리의 소유자가 일반 유저이고 그 안에 root가 파일을 만들면.. (권한은 600)
그 파일은 일반 유저도 지울 수 있네요.. 이거 정상인가요??
(읽기나 쓰기는 불가능)
Forums:
정상입니다.파일을 생성하고 지우는 작업은 해당 디렉토리 파일을 변
정상입니다.
파일을 생성하고 지우는 작업은 해당 디렉토리 파일을 변경하는 작업입니다.
(직접 file i/o로 디렉토리를 쓰지는 못합니다.)
단, 디렉토리에 sticky bit이 설정된 경우에는 owner가 다른 경우에는
해당 디렉토리에 write 권한이 있더라도 파일을 삭제할 수 없도록 하는 시스템들도 있습니다.
이 경우에는 해당 파일에 대해 write 권한을 가지고 있다면 파일을 지울 수 있습니다.
/tmp 나 /var/tmp 를 확인해 보세요.
root 권한의 파일이 일반유져 권한의 디렉토리 안에 있다면 강제 삭제가
root 권한의 파일이 일반유져 권한의 디렉토리 안에 있다면 강제 삭제가 가능합니다.
『 아픔은.. 아픔을 달래줄 약이 무엇인지 알면서도 쓰지 못할 때 비로소 그 아픔의 깊이를 알수가 있음이다. 』
『 for return...』
정말 가능하군요. O.o
정말 가능하군요.. O.o
..
처음 알았습니다.
..
ㅎㅎ 감사합니다. ^^;
..
sticky bit와는 관계없이 가능하군요. ㅎㅎ
No pains! No gains!
[quote="emptysky"]root 권한의 파일이 일반유져 권한의
정말 그렇다면 보안에 심각한 문제가 있는거 아닌가요?
예를들어 remote로 일반유저로 접속한 후 /etc 디렉토리의 파일을 몽땅 지운다던가 하면 큰일 아닌가요?
[quote="thisrule"][quote="emptysky"]root
일반유저 권한 디렉터리 안에 있을 때의 얘기입니다. /etc 디렉터리는 root 권한으로 되어 있죠.
예를 들자면 이런 겁니다.
/home/war3 라는 디렉터리(war3 유저 계정이겠죠.)에 /home/war3/temp 라는 war3 유저가 만든 디렉터리가 있는데, 그 디렉터리 안에 temp.txt 라는 root 가 만든 파일이 있다고 하면 war3 유저는 temp.txt 파일을 지울 수 있다... 는 얘기입니다. 만일 저 temp.txt 가 /etc 나 /tmp 등의 war3 유저 권한 밖의 디렉터리에 위치하고 있다면 지우지 못합니다.
[quote="thisrule"][quote="emptysky"]root
/etc가 root 소유의 디렉토리고 보통 755인데
일반유저가 들어가서 볼 수는 있어도 손댈 수는 없는 거 아닌가요? 8)
그나저나 root님이라니... 신선한 표현이네요. :wink:
이해가 안되는게 있는데요제가 BobPlease 사용자라고 하고
이해가 안되는게 있는데요
제가 BobPlease 사용자라고 하고
/home/BobPlease/public_html/bbs/upload001.txt
라는 파일이 있다고 가정하구요.. upload001.txt는 apache권한이라면
지울수도 있다는 얘기인거 같은데
왜 못지우죠? 'ㅡ'
물론 /home/BobPlease/public_html/bbs 까지는 제 권한이구요..
p.s : OOPS.org의 BPL을 읽다보니 계정이름도 이거밖에 생각이 안나네요^^
[quote="맹고이"]그나저나 root님이라니... 신선한 표현이네요.
저도 한참 흐믓하게 웃었습니다. :wink:
There is no spoon. Neo from the Matrix 1999.
[quote="Zeroidle"]이해가 안되는게 있는데요제가 Bo
해당 디렉토리와 파일의 권한을 보여주세요~
ls -l upload001.txt
ls -ld .
id
댓글 달기