права на запись для файлов и папок вне корня документа

Со ссылкой на ответ в этой теме , я Я хотел бы спросить о другом случае, когда мы должны сохранить важные файлы в папке над корнем документа, чтобы защитить важные пользовательские данные (скажем, фото пользователя). Я хотел бы спросить следующее: -

  1. Рекомендуется ли сохранять важные файлы пользовательских данных вне корня документа?
  2. Если да, то каков наилучший способ определить права доступа к файлам и папкам для такой папки, чтобы apache мог писать и обслуживать эти файлы? безопасно, защищая остальную часть сервера.

Спасибо.

Перефразируя мой вопрос после использования информации, полученной в ответ на выше:

chown -R user: apache /var/www/mysite.com

со структурой каталогов

           ( 750)     (750)
/var/www/mysite.com/  html ()  (730)  
                   \ internal\uploads\test.jpg (660)
                             \ (710)
                             \scripts\test.php (640)
                             \ (710)
                             \functions\fn.php (640)

DOCROOT - это HTML. ВНЕ ДОКРОТА это внутренности. uploads хранит фотографии профилей пользователей и им нужны g + rw perms для файлов для пользователя apache, в то время как папка uploads требует w_x perms. структура верна? С этими разрешениями, Должен ли я беспокоиться о том, что apache проходит вне корня, чтобы записывать файлы в загрузках?

2
задан 12 June 2020 в 17:37

1 ответ

  1. Да. Я считаю, что лучше всего поместить что-либо, что вы изменяете (даже файлы конфигурации), в другой раздел, чтобы вы могли создать резервную копию этого раздела самостоятельно. Вы можете использовать символические ссылки и / или "cp", чтобы соединить их вместе. Для этого создайте сценарий.

  2. Что ж, на это просто и сложно ответить: не добавляйте больше разрешений для этого конкретного файла. Если для этого не нужны разрешения на выполнение, не добавляйте его. Если файл нужно только для чтения, не добавляйте права на запись. Никогда не используйте chmod 777 , так как это полностью убивает любую безопасность. Это простой ответ.

    Несколько более сложный ответ ...

    Если вы используете ftp / ssh, создайте пользователя для каждого человека и добавьте / те пользователей в группу, для которой вы устанавливаете apache (вероятно, apache [114019) ]), а затем сосредоточиться на настройке разрешений для группы, а не для отдельного пользователя. Для других я бы всегда отключал разрешения. Причина: если кто-то жаловался на что-либо, запрещается разрешать этому лицу знать, что это проблема, связанная с настройкой группы этого пользователя. И это легко исправить.

    Если сервер является однопользовательской настройкой, вы можете сосредоточиться на настройке разрешений для пользователя, используемого apache, и вы можете уменьшить разрешения для группы. Однако вы также можете использовать групповой метод для 1 пользователя.

    Общий 1-й подход (f для файлов, d для каталогов), настроенный для пользователя:

     find / var / www / -type f -print0 | xargs -0 chmod 640 

    Если сервер является однопользовательской настройкой, вы можете сосредоточиться на настройке разрешений для пользователя, который использует Apache, и вы можете уменьшить разрешения для группы. Однако вы также можете использовать групповой метод для 1 пользователя.

    Общий 1-й подход (f для файлов, d для каталогов), настроенный для пользователя:

     find / var / www / -type f -print0 | xargs -0 chmod 640 

    Если сервер является однопользовательской настройкой, вы можете сосредоточиться на настройке разрешений для пользователя, который использует Apache, и вы можете уменьшить разрешения для группы. Однако вы также можете использовать групповой метод для 1 пользователя.

    Общий 1-й подход (f для файлов, d для каталогов), настроенный для пользователя:

     find / var / www / -type f -print0 | xargs -0 chmod 640
    find / var / www / -type d -print0 | xargs -0 chmod 750
    

    Это отключает «другие». Если вы хотите использовать группу, измените их на 460 или 660 и 570 или 770 (вторая пара также включает пользователя). Если в / var / www / есть какие-либо файлы, требующие выполнения, их там не должно быть, поэтому вы поймаете те с этой настройкой (они должны быть в каталоге cgi-bin / за пределами / var / www / ).

    Если вы используете группы, вы можете добавить своего обычного пользователя в группу apache.

    И я бы сам не использовал администратора, а выделенного пользователя только для поддержки сайта. Сохраняйте администратора для экстренных случаев и настройки.

2
ответ дан 19 June 2020 в 21:42

Другие вопросы по тегам:

Похожие вопросы: