2012-04-10 3 views
0

나는 linode에서 LAMP 스택을 실행 중입니다. 우분투 버전은 Lucid입니다.PHP가 커튼 기능을 실행할 때 유닉스 사용자가 www-data를 빼앗는 것처럼 보입니다.

PHP 스크립트가 mkdir() 또는 move_uploaded_file 명령을 실행하면 새로 생성 된 폴더/파일이 유닉스 사용자 'Grusha'의 소유가됩니다. 이 사용자를 만들었지 만 파일을 소유해서는 안됩니다. 웹 폴더는 전체적으로 www-data이 소유하며, 새 폴더/파일이 들어있는 폴더를 포함하는 (확장자로).

은 사용자의/etc/passwd 파일은 다음과 같이이다 :

grusha:x:1000:1003:,,,:/home/grusha:/bin/bash 

및/etc/group에는 이것이다 : 그들은 너무 만든 것 같은

grusha:x:1003: 

Grusha가 있지만, PHP 세션을 소유 아무것도. 시스템에있는 프로세스 나 파일이 Grusha로 실행되지 않습니다.

공개 키를 사용하여 로그인하면 통과하는 사용자가 Grusha (루트가 아님)가 아닙니다.

Grusha를 삭제하면 더 이상 Apache를 다시 시작할 수 없습니다. bad username이 표시되고 다시 시작되지 않습니다. PHP 세션도 작동하지 않습니다.

그래서 결국 Grusha를 추가하면 서버가 시작되고 스크립트는 Grusha가 소유 한 파일이 아니라는 것을 제외하고는 모두 작동합니다. www-data이 아닙니다.

나는 가능한 한 많이보고 있었지만 어떤 정보도 찾을 수 없습니다. 내 httpd.conf이 비어 있습니다.

User ${APACHE_RUN_USER} 
Group ${APACHE_RUN_GROUP} 

을 그리고 그 변수는 /etc/apache2/envars에서 www-data 같이 정의된다 : 내 apache2.conf 다음 행이 포함되어 있습니다.

누구든지 의견이 있으면 감사드립니다.

고마워은 엘리엇

+0

TAR에서 파일을 압축 해제 했습니까? Grusha로 실행중인 프로세스가 있습니까? – 0xC0000022L

+0

TAR에서 압축을 풀지 못했지만, 사이트의 백엔드에 로그인하는 동안 "top"을 실행하면 Grusha가 자주 나타납니다. 이렇게 : 29205 grusha 20 0 52464 8044 3156 S 0 0.8 0:00.03 apache2 전혀 도움이 되나요 ?? – esp

+0

나는 그걸 복사하는 것이 빠르지 않아 빨리왔다 갔다한다. – esp

답변

0

suPHP 모듈은 아마 사용할 수 있습니다. 이 함수는 공유 서버에서 매우 안전하지 않은 www-data 대신 스크립트를 소유 한 사용자의 사용자 ID로 PHP 코드를 실행하도록하는 기능입니다. /etc/apache2/mods-enabled/suphp.load/etc/apache2/mods-enabled/suphp.conf을 삭제하여 suPHP를 끄십시오.

문제가되지 않는 경우 사용자 grusha이 실제로 www-data (/etc/passwd)과 동일한 숫자 사용자 ID를 갖고 있지 않은지 확인하십시오. 그것은 아마 비록있을 법하지 않습니다.

+0

작성해 주셔서 감사합니다. 그러나 이러한 솔루션은 작동하지 않습니다. - 해당 모드 파일은 mods 가능 디렉토리에 없습니다. - www-data는/etc/apache2/envvars 에있는 사용자 및 그룹으로 정의되며 사용자 ID는 동일하지 않습니다./etc/passwd의 두 행 : grusha : x : 1000 : 1003 : ,,, :/home/grusha :/bin/bash AND www-data : x : 33 : 33 : www-data :/var/www :/bin/sh 다시 한번 감사드립니다. – esp

+0

글쎄, [linode] (http://www.linode.com/)에 대해서는 아무 것도 모르지만 suPHP가 활성화되도록하는 다른 설정이있을 수 있습니다. '/ etc/apache2/mods-enabled'는 데비안과 다른 사람들에 의해 사용되지만 아마 linode는 다른 규칙을 사용할 것입니다. 여전히 도움이되지 않는다면 다른 사람이 다른 아이디어를 갖기를 바랍니다. – Celada

+0

suPHP에 대한 기사를 읽었습니다. 그러나 거기에 있지 않습니다. Grusa는 사이트 구조에서 어떤 것도 소유하지 않으므로 suPHP는 책임이 없습니다. 어쨌든 좋은 생각이었습니다. – esp

0

아,이 문제가 해결되었습니다. 사과.
/etc/apache2/sites-enabled /에 mpm 지시문을 사용하여 apache가 grusha로 실행되도록했습니다.
그 방법은 확실하지 않지만 어쨌든 해결됩니다. 두 분 모두 내 문제를 생각해 주셔서 감사합니다.