2010-01-06 7 views
0

내 PHP 소프트웨어를 자동 업데이트 할 수있게하고 싶습니다. 이 작업을하려면 PHP가 있어야 기존 및 존재하지 않는 파일을 모두 작성할 수 있습니다 (작성). 목표 파일이 0777이되도록 CHMOD하고 쓰기 만하면 항상 작동합니까? 아니면 PHP/Apache/wtvr 프로세스가 파일의 소유자 일 필요가 있습니까?PHP와 CHMOD 질문

가끔 FTP 계정을 사용하여 업로드 할 때 소유자가 PHP 프로세스와 다를 수 있습니다. 이것이 문제입니까?

편집 : PHP 응용 프로그램을 구축 중이며 응용 프로그램을 실행할 구성을 알 수 없으며 서버 관련 설정을 수정할 수 없습니다. chown(), chmod()와 같이 PHP가 할 수있는 일을 할 수 있습니다.

답변

2

FTP를 통해 파일을 업로드 할 때 파일의 소유권이 이전에 몇 가지 권한 문제를 일으킨 ftp 사용자로 변경되는 서버가 하나 있습니다.

우리는 예를 들어이

피해 갈 그룹을 사용하여 파일에 액세스하기위한 사용자 그룹을 생성하고 아파치를 추가 플러스 그룹에 당신의 FTP 사용자의 각 수 :

usermod -a -G appUpdaters www 
usermod -a -G appUpdaters ftp1 
usermod -a -G appUpdaters ftp2 
etc... 

그럼 당신은 할 수 대한 Chown 파일/775

chown www.appUpdaters foldername 
chmod 775 foldername 

에 사용자 + 그룹과 chmod를 그런 식으로 폴더 ftp1.appUpdaters 또는 ftp2.appUpdaters에 소유권 변경, 다른 사용자가 할 수있는 경우 여전히 파일에 씁니다.

내가 말했듯이, 내가 사용하는 모든 서버에서이 설정이 필요하지 않은 것 같아서 서버 설정에 따라 달라질 수 있습니다. 당신이, 내가이 링크를 찾을 상점 그룹을 사용하기로 결정하는 경우

http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

+0

문제가 있다고 생각합니다. 나는 PHP를 통해 사용자 그룹을 만들 수 있다고 생각하지 않습니까? 서버에 액세스 할 필요가 없습니까? 나는 단지 여러 플랫폼을위한 소프트웨어를 작성하는 개발자 일뿐입니다. – Tower

1

업로드 할 폴더를 www 서버가 소유하도록 만듭니다. (www가 소유 웹 파일에 다른 물건을하지 마십시오)

# chown www somefolder 
# chmod 755 !$ 

755을 chmodded 않다면 그런 다음 PHP 스크립트는 해당 폴더에 쓸 수 있습니다.

+0

PHP를 통해 WWW 사용자를 찾을 수있는 방법이 있나요 때때로 유용? – Tower

+0

chmod 777 폴더를 만든 다음 작은 PHP 스크립트를 만들어 그 폴더에 파일을 작성한 다음 ls -l을 사용하여 파일 소유자를 확인하십시오. 그래도 쉬운 방법이 있습니다. 루트 액세스 권한이 있습니까? – Gazzer