2014-05-12 2 views
0

디렉토리 위치에 비디오를 만들어야하는 Python CGI 스크립트를 실행 중입니다.7730 이후에도 쓰기 권한이 거부되었습니다.

플랫폼 : Ubuntu 14.04 64-bit

파이썬 버전 : 2.7.6

스크립트는 사용자가 실행되고 : www-data

내가 디렉토리 mydir 있습니다. mydir에 대한 사용 권한은 777 (재귀)입니다. 이 디렉토리는 사용자가 소유하고 있습니다 : www-data 및 그룹 www-data. 파이썬 스크립트는 mydir의 하위 디렉토리에 새 디렉토리를 생성하지만 제기 예외가있다 :

drwxrwxr-x 3 me me 4096 <Timestamp> newdir 
: 내가 만든 새로운 디렉토리, 놀랍게도 다음과 같은 상태를 가지고 관찰

IOError: [Errno 13] Permission denied: 'path/to/file.ext' 

이전에 프로세스가 www-data에 의해 실행 중이 었으나 이제는 로그인 한 현재 사용자가 해당 폴더를 소유하게됩니다. (여기서 'me'으로 표시). 다른 권한 인 r-x을 제외한 모든 권한이 설정됩니다. 허가를 쓰지 마라. 그것은 예외가 제기 된 것을 정당화합니다.

나는 os.umask(0000)os.chmod('mydir',0777)을 시도했다. 처음에는 효과가 없었습니다. 둘째, 필자는 어떻게 든 권한이 없습니다. 누군가 제발 도와 줄 수 있어요. 이 문제는 매우 자극적입니다. 내가 여기서 무엇을 놓치고 있니?

은 다음과 같이 파이썬 파일이 실행됩니다하십시오 cronjob는 일부 처리 후 다음 Python 스크립트에 POST 요청을 보내는 PHP 파일을 호출합니다.

EDIT : @MattDMo의 해결책이 작동하는지 알려주세요 (접근 방식을 변경 했으므로 시험하지 않겠습니다). 누군가가 작동한다고 판단되면이를 승인 된 것으로 표시합니다.

*/5 * * * * www-data php call_python.php 

이것은 또한 -u 옵션을 crontab을 실행하여 명령 줄에서 수행 할 수 있으며,을 지정

+0

나는 이미 검색했습니다. 그러나 해결책을 찾지 못했습니다. – activatedgeek

+0

'cron' 작업이'www-data'에 의해 실행되고 있습니까? – MattDMo

+0

전체 작업 세트를 실행중인 사용자를 변경할 수있는 cron 작업에서 curl 또는 php를 사용하고 있습니까? – thebwt

답변

1

그것은 당신이 당신의 crontab을 편집하고 사용자로 www-data를 추가하기 만하면 모든처럼 보인다 crontab이 변경 될 사용자의 이름 :

sudo crontab -u www-data -e 
+0

감사합니다.나는 실제로 나의 접근 방식을 바꾸었다. 내 시스템에서 CGI 부분을 잘라 냈다. 나는 리팩토링을했다. 이제 파이썬 스크립트를 직접 호출하고'PHP' 연산을'Python' 자체로 이식했습니다. – activatedgeek

+0

위의 답변을 테스트하지 않은만큼 받아 들일 수 없습니다. 누군가가 이것을 찾으면 알려주세요. – activatedgeek

관련 문제