Как мне настроить разрешения наиболее безопасным способом на моем выделенном сервере, на котором я использую FTP + Nginx? Я хочу, чтобы FTP мог читать / писать файлы, и я хочу, чтобы Nginx мог читать / писать те же файлы. Должен ли я установить маску пользователя в ProFTPd для записи файлов от имени пользователя nginx?
Должен ли я установить разрешения на 700 для каталогов и 600 для файлов, если они принадлежат пользователю и группе nginx?
Любая информация приветствуется
Если ваш веб-сервер может писать во все ваши файлы, то сайт не обязательно безопасен; любой (известный или неизвестный) эксплойт против nginx, PHP (или Rails, или любого другого стека и т. д.) или веб-приложений, которые вы можете использовать, означает, что злоумышленник может писать во все.
Самый безопасный метод - иметь все файлы, принадлежащие пользователю, отличному от пользователя, от имени которого работает веб-сервер (и PHP и т. Д.), И делать доступными для записи только те вещи, которые должны быть доступны для записи для работы приложения, например, каталоги загрузки пользователей. .
Например, на моем веб-сервере nginx работает от имени пользователя nginx, php-fpm также работает от имени пользователя nginx, и все файлы принадлежат моей учетной записи пользователя, за исключением каталогов загрузки, которые принадлежат nginx, так что файл моего веб-приложения функции загрузки работают.
Каждый раз, когда я использую SFTP, я вхожу в систему со своей учетной записью, и я su
в root, чтобы изменить владельца таких каталогов загрузки (например, WordPress /wp-content/uploads
каталог). Большинство веб-приложений выводят предупреждение во время установки, когда необходимо сделать файл или каталог доступным для записи.