2013-02-15 2 views
8

В настоящее время я установил 0777 во все каталоги и файлы.
Однако я боюсь, что меня могут получить от других.
файлы журналы и все контроллеры, модель, представление и файлы в конфигурации устанавливаются 0777Как настроить разрешение для приложения Rails?

В общем, как они должны быть установлены?

  • файлов журналы каталоги и файлы
  • файлов контроллеры
  • файлов модель
  • зрение Fies
  • файлы в директории конфигурации

ответ

12

Вы должны определенно не использовать 0777 для файла разрешения. Это более легко предоставляет уязвимости.

В общем, следовать этому принципу:

  • Для папок, используйте 0755, который приравнивает к rwxr-xr-x. Разрешение выполнения позволяет просматривать содержимое папки.

    находят/ваши/Рельсы/реж -типа d -exec CHMOD 755 {} +

  • Для исполняемых скриптов, а также использовать 0755. Это позволяет любому исполнять скрипты, но не вносить в них изменения (писать).

  • Для всех остальных файлов используйте 0644, что соответствует rw-r--r--. Это позволяет всем читать файл, владельцу записывать в файл, и никто не может выполнить файл. Это предотвращает, помимо прочего, загрузку и выполнение вредоносных скриптов.

    находят/ваши/Рельсы/реж -типа е -exec CHMOD 644 {} +

  • При необходимости, файлы, содержащие пароли, которые могли бы рассмотреть более строгие разрешения на, особенно config/database.yml или любые файлы, содержащие пароли для таких вещей, как почта услуги (mandrill, sendgrid, postmark), ведра Amazon S3 или соединения Redis. Для этих файлов вы можете использовать 0600.

В производственной среде ваше приложение-рельсы должно работать как один и тот же пользователь (не root), которому принадлежат все эти файлы. Это выполняется наиболее легко, используя passenger, unicorn или работая с веб-сервером, таким как mongrel или webrick, как местный пользователь, прослушивающий порт, такой как localhost:3000, и имеющий обратный прокси Apache или Nginx до localhost:3000.

+0

Спасибо за подробное объяснение. Это то, о чем я никогда не думал. Еще раз спасибо :) – HUSTEN

+0

мог бы рассказать мне эти случаи? 'controllers/examples_controller.rb',' models/example.rb', 'views/controllerlers/index.html.erb',' config/database.yml', 'config/environment/production.rb',' config/routes .rb' и файлы в каталоге 'tmp' – HUSTEN

+0

Примените' 0755' к каталогам и '0644' к файлам. – Benjamin

Смежные вопросы