2013-02-15 2 views
8

현재 모든 디렉토리와 파일에 0777을 설정했습니다.
그러나 나는 다른 사람들이 접근하는 것이 두렵다.
로그 파일과 구성에있는 모든 컨트롤러, 모델, 뷰 및 파일이 0777Rails 앱에 대한 권한을 어떻게 설정해야합니까?

으로 설정됩니다. 일반적으로 어떻게 설정해야합니까?

  • 로그 파일 디렉토리 및 파일
  • 컨트롤러 파일
  • 모델 파일 config 디렉토리에
  • 보기에 앞장 설
  • 파일

답변

12

당신은 확실히 당신의 파일을 0777을 사용해서는 안 사용 권한. 이렇게하면 취약점에 쉽게 노출됩니다. rwxr-xr-x에 동일시하는 0755를 사용하여 폴더를

  • : 일반적으로

    는이 원리를 따릅니다. 실행 권한을 통해 폴더 내용을 볼 수 있습니다.

    찾기가/당신의/레일/디렉토리 타입 D 간부 chmod를 755 {} + 실행 스크립트

  • , 또한 0755를 사용합니다. 이를 통해 누구나 스크립트를 실행할 수는 있지만 스크립트를 변경 (쓰기) 할 수는 없습니다.

  • 다른 모든 파일의 경우 과 같은 0644을 사용하십시오. 이렇게하면 모든 사람이 파일을 읽을 수 있고 소유자는 파일에 쓸 수 있으며 아무도 파일을 읽을 수 없습니다. 이렇게하면 악성 스크립트가 업로드되고 실행되는 것을 방지 할 수 있습니다.

    발견은/당신의/레일/디렉토리 타입 F 간부 chmod를 644 {} +

    선택적으로, 암호를 포함하는 파일은 당신이 더 제한적인 권한, 특히 config/database.yml 또는 메일 같은 것들에 대한 암호가 포함 된 파일을 고려할 수
  • 서비스 (mandrill, sendgrid, postmark), Amazon S3 버킷 또는 Redis 연결. 이 파일의 경우 0600을 사용할 수 있습니다.

프로덕션 환경에서는 레일즈 응용 프로그램이 이러한 파일을 모두 소유하는 동일한 사용자 (루트가 아닌 사용자)로 실행되어야합니다. 이는 passenger, unicorn을 사용하거나 mongrel이나 webrick과 같은 웹 서버를 localhost:3000과 같은 포트에서 수신하고 localhost:3000에 대한 Apache 또는 Nginx 역방향 프록시를 사용하는 로컬 사용자로 실행하면 가장 쉽게 수행 할 수 있습니다.

+0

감사합니다. 이것은 내가 결코 생각하지 못했던 것이다. 다시 한 번 감사드립니다 :) – HUSTEN

+0

이 사례를 알려주실 수 있습니까? 'config/databases.yml','config/environments/production.rb','config/databases.ymb','config/.rb' 디렉토리와'tmp' 디렉토리의 파일들 – HUSTEN

+0

디렉토리에'0755', 파일에'0644'를 적용하십시오. – Benjamin

관련 문제