2009-05-25 6 views
3

chmod를 사용하여 내 서버에서 파일 사용 권한을 변경하는 PHP 스크립트가 있습니다. 브라우저를 통해 (아무도 아닌) cron 작업을 통해 (사용자 이름으로) 스크립트를 실행할 수 있기를 원합니다.PHP - 파일 권한 변경

파일의 소유자 만 사용 권한을 변경할 수 있습니까? 나는. cron 작업을 통해 파일을 만들고 사용 권한을 설정하면 브라우저에서 스크립트를 실행할 때 해당 사용 권한을 변경할 수 없습니까?

여기에 어떤 방법이 있습니까? 스크립트를 실행중인 사용자로 파일을 삭제 (연결 해제)하고 다시 만드시겠습니까? 아니면 아무도 cron 작업을 통해 PHP 스크립트를 실행하는 방법은 무엇입니까?/사용자 이름으로 브라우저를 통해?

파일 사용 권한을 변경하여 이미지를 공개적으로 볼 수있게 만들 수 있습니다.

답변

2

해결 방법 1 : 사용자 및 cron 사용자 모두에 대한 그룹을 만들고 각 사용자를 새 그룹에 추가하고 두 사용자 모두 파일에 대한 읽기 및 쓰기 권한을 부여합니다 (chmod g + rw filename). (다음 솔루션보다 안전함).

해결책 2 : 가장 쉬운 방법은 모든 사람이 파일을 읽고 쓸 수있게 만드는 것입니다 (chmod a + rw 파일 이름).

프로덕션 용도로는 사용하지 않는 것이 좋습니다.

-2

소유자 또는 슈퍼 유저 (또는 동급)

-1

이 작업을 수행 할 수있는 파일의 소유자 만 보통은, 내가 대신 '아무도'로 cron 작업을 실행하는 것이 좋습니다.

1

스크립트에 사용자 이름이나 암호를 입력하지 않고도이 작업을 수행 할 수 있습니다.

crontab에 sudo는 웹 서버가 실행되는 사용자로 스크립트를 실행해야합니다. 당신의 예제에 따라, 나는 아무도 사용하지 않을 것이다.

0 12 * * * (sudo는 -u 아무도 PHP는 ./yourscript.php) ("아파치"와 같은뿐만 아니라 사용자)은 "아무도"사용자가 일반적으로하지 않는

참고 로그인 권한을했다. sudo가 tty없이 스크립트를 실행하도록 허용해야 할 수도 있습니다. "sudo : sudo : sudo를 실행하려면 tty가 있어야합니다."

visudo 명령을 사용하여 "defaults requiretty"행을 주석 처리하여이를 허용 할 수 있습니다. sudo에 대한 변경 사항과 마찬가지로이 변경 사항이 발생할 수있는 부작용을 검색 할 수 있습니다.

0

예, 파일 소유자 만 가능합니다. 옵션은 서버에 대한 제어의 종류에 따라 다릅니다.

서버를 충분히 제어 할 수있는 경우 Apache의 mod_php 대신 SuPHP를 사용할 수 있습니다. 그렇게하면 PHP 스크립트는 스크립트를 소유 한 사용자로 실행되며 PHP 스크립트로 작성된 모든 파일은 동일한 사용자가 소유하게됩니다.

많은 제어 (예 : 일반적인 공유 웹 호스팅)가 없다면 Joomla의 FTP 접근 방식과 같은 것을 사용할 수 있습니다. Joomla에서 FTP 지원이 켜지면 FTP를 사용하여 모든 파일 조작을 수행합니다. 이렇게하면 FTP 사용자와 동일한 권한으로 파일을 만들거나 조작 할 수 있습니다.

이 같은

뭔가 (오류가 ommitted 핸들링) :

$ftp = ftp_connect('localhost'); 
ftp_login($ftp, 'username', 'password'); 
ftp_chdir($ftp, '/root/to/website'); 
ftp_chmod($ftp, 0644, 'filename.ext'); 
ftp_close($ftp);