2010-04-02 5 views
0

system()exec() 함수가 PHP에서 사용되는 경우 기본적으로 사용자는 SYSTEM이므로 결과를 결코 볼 수 없습니다. 실행되는 사용자를 변경하는 방법이 있습니까?특정 사용자의 PHP에서 exec 함수를 사용하는 방법

+2

exec()는 프로세스를 시작한 사용자 (예 : apache)로 실행됩니다. 그건 바꿀 수 없어요. 그러나 exec()는 명령의 결과를 리턴해야합니다. – webbiedave

+0

어떤 운영 체제를 사용하고 있는지 (그리고 변경할 가능성이 있는지) 모르게 대답 할 수 없습니다. Microsoft (sudowin)에 대한 sudo 도구가 있다고 생각하지만 – symcbean

+0

Apache 2.7 및 PHP 5.2.2와 함께 Windows 7을 사용하고 있습니다. – Eric

답변

0

webbiedave에 추가하려면 출력하거나 파일에 저장할 수 있습니다. 가능한 경우 데이터베이스에 저장하는 것이 좋습니다. 이렇게하면 경쟁 조건이 방지됩니다.

0

웹 서버에는 다른 사용자 (예 : suEXEC)로 스크립트를 실행할 수있는 조항이 있지만 PHP 자체는 그렇게 할 수 없습니다.

0

매분마다 파일을 검사하는 cronjob (특정 사용자)을 정의 할 수 있습니다. PHP (다른 사용자)를 사용하면이 파일에 쓸 수 있습니다. cronjob이 파일에서 무언가를 찾으면 특정 사용자의 작업 처리를 시작합니다. 그것은 IMHO가 사용자를 변경하는 유일한 방법입니다.

관련 문제