2013-08-03 2 views
-2

이 중복이어야한다 _www하지, 관리자로 fopen의,하지만 내가 PHP 웹 스크립트를 설치 쓰고 있어요PHP의 실행은

나는 ... 답을 찾을 수 없습니다. 필자는 이후에 쓰기 불가능한 파일을 PHP로 작성해주기를 바랍니다. fopen을 sudo 할 수있는 방법이 있습니까?

분명히 _www 자격 증명은 디렉토리에 대한 쓰기 액세스로 시작하지 않으며 끝나지 않습니다. 나는 쓰기 권한을 가진 설치 사용자가 나머지 부분을 처리 할 스크립트에 그들의 자격 증명을 전달할 것이라고 생각하고 있습니다.

+0

'관리자'라고하면 무엇을 의미합니까? 어떤 플랫폼을 실행하고 있습니까? –

답변

1

PHP 내에서 sudo를 할 수 없습니다. 무언가를 루트로 실행하려면 sudoers 파일에 Apache 사용자 www을 추가해야합니다. 이는 아마도 좋은 생각이 아닙니다. 그리고 다른 사용자가 실행할 설치 스크립트를 작성하는 경우 옵션이 될 수 없습니다.

그런 경우 처음에 액세스 할 수없는 디렉토리에 파일을 만들 수는 있지만 chmod()을 사용하여 파일을 작성한 후에 파일을 읽기 전용으로 만들 수 있습니다. 이것은 Apache가 실행하는 다른 스크립트가 나중에 동일한 기능을 사용하여 쓰기 속성을 다시 추가 할 수 없음을 의미하지는 않습니다.

가장 좋은 방법은 쓸 필요가있는 파일의 빈 버전을 만드는 것입니다. 스크립트에서 처음부터 쓰기 액세스를 확인하도록하고,없는 경우 쓰기 권한을 부여하기 위해 사용자에게해야 할 일을 알려주십시오. 완료되면 진행할 수 있습니다. 스크립트가 파일을 쓰고 쓰기 액세스를 제거하기 위해 수행해야 할 작업을 사용자에게 알려줍니다. 스크립트는 그 일이 일어 났는지 확인하고 사용자가 쓰기 액세스를 성공적으로 제거 할 때까지 다음 단계를 계속할 수 없도록합니다.

1

빈 파일을 제공하고 설치 프로그램이 쓰기를 위해 그들을 chmod하게하는 것입니다.

이렇게하면 사용자가 파일을 처음 제공 한 사용자를 유지 관리 할 수 ​​있습니다.

보너스는 응용 프로그램이 서버에 쓸 수있는 대신 더 안전한 응용 프로그램을 작성할 수 있다는 것입니다.