С точки зрения безопасности, для меня этот каталог, а также любой каталог, в который должен перейти веб-сервер, должны быть установлены таким образом, чтобы веб-сервер не был владельцем файлов. /directories и таким образом, чтобы у него не было никаких прав на запись в какой-либо каталог/файл.
Таким образом, это означает, что любая брешь в сервере никогда не приведет к чему-то большему, чем DOS и эксфильтрация, файлы не смогут быть записаны веб-сервером.
Конечно, в реальной жизни все может быть сложнее, так как:
rwx
везде, и это сработает. Конечно, если вы даете всем все права, это «работает», но это последствия с точки зрения безопасности. Поэтому, если у вас есть такие пользователи, которые подключаются к вашему серверу для загрузки новых файлов через SFTP, чтобы они могли обслуживаться веб-сервером, я бы:
rx
для него При этом каждый пользователь видит только свои собственные файлы и ничего больше. (SFTP также имеет возможность chroot для дополнительной безопасности, но это сопряжено со своими сложностями ),а вебсервер имеет доступ ко всем файлам только на чтение.
Внутри каждого каталога вы можете иметь все файлы, принадлежащие группе веб-сервера, или даже поставить rx
для кого-либо, поскольку он будет защищен верхним каталогом, не имеющим никаких прав для других пользователей, кроме владельца или веб-сервера..
Одним из способов может быть(POSIX sed
):
$ sed -e '
/PAT1/,/PAT2/!d
H;/PAT1/h;/PAT2/!d;g
s/PAT2.*//;s/.*PAT1//
' file
Предположим, что PAT1 и PAT2 находятся на разных линиях.