2013-06-09 2 views
0

에서 서버 응용 프로그램을 시작합니다. 저는 PHP에서 비교적 새로운데, 현재 문제가 있습니다.브라우저 (PHP)

서버를 실행하기 위해 Mac OS X을 수정했으며 웹 브라우저를 사용하여 서버에서 일부 응용 프로그램을 시작할 수 있기를 바랍니다. 마지막 아이디어는 버튼을 사용하는 것입니다. 버튼을 클릭하면 테스트가 끝난 후 응용 프로그램이 실행됩니다 (응용 프로그램이 이미 켜져 있습니까?)

하지만 처음에는 작게 시작했습니다. 나는 스크립트를 포함하는이 HTML 페이지를 만들었습니다

<html> 
<body> 
<?php 
    print "hello word"; 
    $output=exec(" open /Applications/Cyberduck.app"); 
    print $output; 
?> 
</body> 
</html> 

스크립트 내가 명령 줄에서 시작있을 때 제대로 작동되지만 난에서 아무것도하지 않는 웹 브라우저를 실행하려고 할 때 모두 ("hello world"작성 제외)

응용 프로그램을 시작하는 셸 스크립트 작성 문제를 해결하려고했지만 웹 브라우저에서 실행하면 스크립트가 실행되지만 응용 프로그램은 열리지 않습니다.

나는 확실히 뭔가를 놓치고 있다고 확신하지만 인터넷을 통해 어떤 해결책도 찾지 못했다. (어휘력이 부족하고 내 연구 용어가 적절하지 않을 수 있음을 인정할 수있다.) 당신의 도움에 대한

감사합니다, 문제는 웹 서버가 GUI 사용자와 동일한 사용자와 권한으로 실행하지 않는다는 것입니다

마크

+0

['exec'] (http://php.net/manual/en/function.exec.php) 명령은 방문자 컴퓨터가 아니라 실행중인 서버에서 명령을 실행하기 때문입니다. 그렇지 않으면 거대한 보안 문제가 될 것입니다. – Joe

+1

방문자 컴퓨터가 아닌 서버에서 응용 프로그램을 시작하고 싶지 않습니다. 그리고 그것은 실제로하지 않습니다 –

답변

0

. su 또는 sudo를 사용하여 다른 사용자로 실행하여이 문제를 해결할 수 있습니다. 그러나 su를 사용하면 암호 입력이 팝업되므로 처리하기가 어렵습니다.

또는 setuid 비트가 설정된 Cyberduck을 시작하는 별도의 스크립트를 만들 수도 있습니다. setuid 비트를 사용하면 스크립트 소유자의 권한으로 스크립트를 자동으로 실행할 수 있습니다.

+0

당신의 제안에 감사드립니다, 나는 그것을 시도 할 것이지만 안전합니까? –

+0

setuid 비트를 사용하면 특정 스크립트를 다른 사용자로 실행할 수 있습니다. 예, 공격 벡터가 약간 증가합니다. – Evert

+0

게다가 나는 setuid가 Mac OS X 10.5에서는 비활성화되어 있다고 읽었습니다. 극단적 인 해결책 인 것 같습니다. –