cat <<'EOF'
Data...
EOF
Примечание. Лучше цитировать слово Heredoc ( EOF
), что и выше, чтобы избежать расширения, если данные Содержит что-то вроде $ FOO
или обратные косания, если вы не хотите расширить курс. Примеры:
$ cat <
дает что-то вроде:
3 \
в то время как
$ cat <<'EOF'
$SHLVL \\
EOF
дает:
$SHLVL \\
На основе вашего вопроса я собираюсь сделать предположение. Процесс веб-сервера находится в той же группе, что и владение группой в каталоге.
Вы удалили бит Execute (X) из разрешений каталога и передали его обратно в группу. Это означает, что в каталоге владелец не имеет разрешения на выполнение, и это необходимо иметь возможность изменять / проходить через каталог. Использование CHMOD -R с абсолютными разрешениями может быть опасным по этой причине. Я бы порекомендовал сделать следующее:
Исправьте ваши разрешения каталога.
sudo find my_directory -type d -exec chmod 2750 {} \;
Так как вы сломали Directory Traveral, вам может потребоваться выполнить это несколько раз. Если вы получаете какие-либо ошибки разрешений, при запуске вышеуказанной команды повторно запустите, пока эти ошибки не понятны.
Исправить ваши разрешения файлов.
sudo find my_directory -type f -exec chmod 0640 {} \;
Когда это сделано, ваши каталоги должны иметь следующие разрешения.
drwxr-s---
И ваши файлы должны иметь следующие разрешения.
-rwxr-x---
Если вы хотите лучше понять разрешения UNIX, я бы порекомендовал прочитать MAN 2 CHMOD . Это, безусловно, сухое чтение, но это объясняет, что означает значение каждого бита.