같은 시스템을 쓰느 사용자라도 상관없습니다.
위의 질문은 웹서비스를 하나만 하는것 같더군요.
그렇다면 nobody 와 같은 그룹을 아무것도 안만들면 해결되지요.
권한은 디렉토리를 포함해서 770 이었으니까 그외의 사용자는 접근조차
할 수 없죠. 따라서 아래의 스크립트를 올릴 수도 없구요.
님께서 말씀 하신내용은 웹호스팅과 같이 여러 홈페이지를 운영하는
사이트에서 발생하는 문제지요. 그에 대한 해결책은 전에 적수님이올리신
글이 있습니다. 한번 읽어 보시죠.
http://linux.sarang.net/board/?p=read&table=tip&no=993&o[at]=s&o[sc]=n&o[ss]=%C0%FB%BC%F6&o[st]=a
: 같은 시스템을 쓰는 사용자에겐 말씀하신 방법도 속수무책이죠. ^^;
:
: A 사용자가 다음과 같은 PHP 스크립트(cat.php)를 하나 만들어서 B 사용자 경로에 있는 dbpass.p
: hp 라는 파일을 웹브라우져(nobody 권한)로 읽어들이면?
: <?
: if ($file != "") {
: $f = fopen($file, "r");
: header("Content-type: text/plain");
: print fread($f, filesize($file));
: fclose($f);
: }
: ?>
:
: http://domain/cat.php?file=/home/httpd/html/dbpass.php
: http://domain/cat.php?file=/etc/passwd
:
: 타인의 계정은 물론 시스템 설정파일 등도 nobody에게 읽기가 허용된 파일들은 죄다 노출
: 될 수 있겠지요.
:
:
: : 권한설정과 사용자만 제대로 설정하시면 안전합니다.
: : 보통 linux를 쓰시면 web 사용자는 nobody 로 접근을 해서 일반 html 문서나
: : cgi, php등의 프로그램을 실행합니다.
: : 따라서 모든 web 관련 파일의 소유권을 nobody 로 하시고 권한을 770 등으로
: : 소유권자와 같은 그룹 사용자에게만 모든 권한을 주면 됩니다.
: : 이만...
: :
: :
: : : 예를들어 php로 게시판을 만들었는데..
: : : 이것이 /home/httpd/html/board.php3 라고 하는 파일이라면..
: : : 이것을 일반 계정을 가진 사람이 들어와서 보면
: : : 소스파일을 볼 수가 있던데..
: : : 이렇게되면 DB접속 암호를 알 수 있지 않나요?
: : : 이것을 막는 방법은 없나요?
: : : 그렇다구 접근권한을 막아놓자니..
: : : 웹서비스가 안되구...
: : : 그럼 답변기다리겠습니다.
: : : 이만...
: :
: : --
: : 이 곳에 서명을 적어주십시오.
: : ....--이 곳에 서명을 적어주십시오.
....