2012-05-07 4 views
1

Symfony2를 사용하여 응용 프로그램을 개발 중입니다. 내가 가진 문제는 폴더를 생성 할 때 생성 된 폴더가 sudo 권한을 가지고 있지 않은 엔티티에서 기능을 사용하는 경우 sudo 권한으로 직접 폴더를 생성하는 것이 어떻게 가능할까요? 내가 sudo는 권한을 만드는 방법을Symfony2 및 sudo 권한

protected function getUploadDirMark() 
    { 
     // get rid of the __DIR__ so it doesn't screw when displaying uploaded doc/image in the view. 
     return 'uploads/documents/'.$this->getIzenburua(); 
    } 

'uploads/documents/'.$this->getIzenburua(); 폴더에는 sudo는 권한이없는,이 내 코드입니다. 감사.

답변

0

이 작품을 사용하지 않으십니까? chmod()

+0

어떻게 작성할 수 있습니까? return chmod ('uploads/documents/'.$ this-> getIzenburua(), 777); 그것은 할 수 없습니다. 오류를 표시합니다. 어떤 생각? – Haritz

0

왜 sudo 권한이 필요합니까? 응용 프로그램은 특정 사용자의 서버에서 실행되기 때문에 사용자가 만든 파일이나 폴더를 처리하는 데 문제가 없습니다.

+0

디렉토리를 생성 한 후/documents/'.$ this-> getIzenburua() 파일을 저장하고 나중에 PHP DOM을 사용하여로드합니다.이 XML은 디렉토리에 권한이 없으므로로드 할 수 없습니다. 방해. 어떤 아이디어라도 @elnur? – Haritz

+0

나중에로드 할 방법 - 명령 줄 또는 무엇을 통해? –

+0

엔티티 리포지토리에 PHP DOM 스크립트를 사용합니다. 어떤 생각? – Haritz

1

chmod PHP 기능이 작동하지 않는 경우 sudo 권한으로 chmod 쉘 명령을 실행할 수 있습니다.

이것은 당신의 명령 클래스에서 어떻게 보이는지입니다 :

$uploadDirmark = $this->getUploadDirMark(); 
$dialog = $this->getHelperSet()->get('dialog'); 
$passwd = $dialog->ask($output, 'Please enter sudo password'); 
exec("echo $passwd | sudo -S chmod -R a+w $uploadDirmark"); 

이 디렉토리와 모든 사용자에게 쓰기 (및 삭제 가능한) 모든 내용을 만들 것입니다. 적절하게 명령을 수정하십시오 (자세한 내용은 명령 행에서 man chmod 참조). 이런 식으로 열면 잠재적으로 위험 할 수 있습니다. 웹 서버를 파일을 만드는 사용자와 같은 그룹에두고 "a + w"대신 "g + w"를 사용하십시오.