2012-05-16 2 views
1

에 폴더 사용 권한을 설정하지 않고 그것을 할 수 있습니다, 기본적으로 문제는 제목과 좀 더 세부적인 시나리오입니다 : 내가 가진나는 이미지를 업로드 내 사이트의 사용자를 활성화해야합니다 내가 그래서 777

사이트의 PHP로 작성된 백엔드 (Linux 서버 - centos 6) 및 실제로 실제로 액세스 할 수있는 사용자가 2 명입니다. 그들은 어떤 형식을 통해 이미지를 업로드 할 수 있어야합니다. 그래서, 간단한 업로드 스크립트를 만들었지 만 (또는 알지 못하는 것 : /), 업로드는 777로 설정된 폴더 권한에서만 작동하므로 내 질문은 ok입니다. 또는 좀 더 나은 ' 이 상황에서 일반적인 관행?

답변

3

777에서 디렉토리 권한이 필요하지 않습니다. 필요한 것은 웹 서버 사용자가 디렉토리를 쓸 수 있다는 것입니다. 웹 서버 사용자가 소유하거나 다른 사용자가 소유하고 있음을 의미합니다. 그룹이 웹 서버 사용자 및 그룹 쓰기 권한으로 설정됩니다.

# Set ownership to the web server user 
chown www-data uploads_dir 
# and make it writable by the web server user 
# could also be 755 (readable by others) 
chmod 700 uploads_dir 

을 또는이 (예를 들어 공유 호스트) 계정 사용자가 소유 한 상태를 유지해야하는 경우 설정 :

그래서 웹 서버 사용자가 예를 들어 www-data 인 경우 (다른 일반적인 가능성은 apache, httpd, www 포함) 웹 서버 사용자 그룹 :

chown youruser:www-data uploads_dir 
# and make it group-writable: 
chmod 775 uploads_dir 

결론은 일반적으로 하지 디렉토리로 777 (세계 쓰기) 권한을 할당하는 것이 좋습니다 것입니다. 또한 uploads_dir은 웹 서버 문서 루트 외부에 배치해야 이상적인 HTTP 요청을 사용할 수 없습니다.

+0

방금 ​​날 만들었습니다. 고마워! – Nikola

0

suphp와 같은 것을 사용하여 PHP 스크립트를 사용자로 실행하면서 다른 사용자 나 그룹이 쓰기 권한이없는 폴더를 유지할 수도 있습니다.

웹 서버에 대한 관리 액세스가 필요합니다.

0

해결책은 FastCgi를 사용하는 것입니다.

이렇게하면 동일한 사용자 및 그룹이 새 파일 및 디렉토리를 소유하게됩니다.

FastCgi에 성능상의 불이익이 있지만 PHP가 제한되어 있으므로 보안이 강화됩니다. 여러 사용자가 여러 웹 사이트를 호스팅하는 경우 좋은 생각 일 수 있습니다.

관련 문제