Вы должны определенно не использовать 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
.
Спасибо за подробное объяснение. Это то, о чем я никогда не думал. Еще раз спасибо :) – HUSTEN
мог бы рассказать мне эти случаи? 'controllers/examples_controller.rb',' models/example.rb', 'views/controllerlers/index.html.erb',' config/database.yml', 'config/environment/production.rb',' config/routes .rb' и файлы в каталоге 'tmp' – HUSTEN
Примените' 0755' к каталогам и '0644' к файлам. – Benjamin