2010-01-14 3 views
1

아시다시피. 당신은 내가 같이 쓰고 싶은 open_basedir = '/var/home'어떻게 open_basedir을 이렇게 작성할 수 있습니까?> open_basedir = 'var/home/* /'

작성해야합니다 : open_basedir = '/var/home/*/' 내가 PHP는 모든 다른 디렉토리를 들어, 홈 디렉토리에있는 모든 디렉토리를 제한해야합니다입니다 원하는

.

짧은 질문 : 어떻게 open_basedir을 쓸 수 있습니까? open_basedir = 'var/home/*/'?

대단히 감사합니다.

답변

1

당신이하는 PHP 설치해야하는 각 사용자의 홈 디렉토리에 PHP를 제한하려면 :

  1. PHP는 사용자 자격 증명으로 실행을
  2. PHP는 사용자 별 구성을 허용합니다.

일반적인 경우는 PHP를 Apache 모듈로 실행하지 않고 CGI (또는 FastCGI) 설정입니다. 그런 다음 각 사용자에 대해 사용자 정의 php.ini 파일을 제공 할 수 있습니다.

BTW, 나는 그것을 테스트하지만,하지 않은 예상대로 아마 open_basedir = "~" 작품 ...

====== 편집 ======

으로부터 발생하는 일부 해명 OP의 코멘트 : 유닉스 쉘에서

  1. , "~"는 그래서 "현재 사용자의 홈 디렉토리"에 대한 동의어입니다 "/ var에/홈/존"당신은 존을하고는/var에/홈/마이클 "인 경우 "니가 마이클이라면. "var/home/~ /"은 특별한 의미가 없습니다. ~라는 디렉토리입니다.

  2. 많은 프로그램이이 셸 규칙을 사용합니다. PHP가 그렇게하는지 모르겠습니다.

  3. CGI는 서버에서 임의의 프로그램을 실행할 수 있으므로 스케이트 보드가 우주 왕복선보다 안전하지 않은 것처럼 정적 HTML보다 안전하지 않습니다. 그러나 우리는 임의의 프로그램을 실행하는 것에 대해 이야기하는 것이 아닙니다 : 우리는 PHP 인터프리터를 실행하는 것에 대해 이야기하고 있습니다. PHP와 환경만큼이나 안전합니다.

  4. 이 주제에 관심이 있으시면 FastCGI (향상된 성능의 CGI 구현)에 대한 Google입니다. 많은 호스팅 제공 업체가이를 사용합니다.

+0

open_basedir = 'var/home/~ /'테스트를 통과하지 못했습니다. 답변 주셔서 감사합니다. 각 사용자에 대해 사용자 정의 php.ini를 제공하기위한 CGI 설정에 도움이되는 URL을 보내시겠습니까? 마지막 질문 : CGI에 보안 문제가 있다고 들었습니다. 그게 사실이야? 다시 한 번 감사드립니다. – ONSC

+0

고맙습니다. – ONSC

0

하실 수 있습니다. 당신은이 지침에서 각 경로를 지정해야합니다 :

open_basedir = "/var/home/path1/:/var/home/path2/:/var/home/path3/" 
+0

대단히 감사합니다. 그러나 자동 디렉토리 정의가 있습니까? ? 많은 디렉토리가 있기 때문에. – ONSC