
Чтобы защитить данные на моем веб-сервере, я переместил PHP include в папку /var/www-includes (за пределами /var/www, корня сервера). Я также запустил chown root:wwwadmin
и chmod 770
в этой папке. Когда я запускаю ls -ld
в папке, он проверяет настройки: drwxrwx--- ... root wwwadmin ... www-includes
Хотя я могу перейти в папку из моего основного пользователя (adam), который является членом wwwadmin, я не могу просмотреть ее содержимое в графическом файловом браузере. Есть идеи, почему? Редактировать: Кроме того, при попытке редактировать содержащиеся файлы в nano он показывает мне сообщение об ошибке:
Error reading /home/adam/.nano_history: Permission denied
затем открывает содержимое файла. Имеет ли это какое-либо отношение к тому, что может происходить?
решение1
Возможно, очевидный вопрос, но... вы также изменили разрешения файлов внутри каталога? Другими словами, вы использовали флаг "-r" (рекурсивный) при выполнении команд chown/chmod?
решение2
Может быть, это не ответ (поскольку в посте недостаточно информации), но я могу его исправить, если нужно. Когда я проходил курсы обучения Linux, я разработал способ быстрого поиска проблемы с разрешениями. Я знаю, что вы уже выполнили некоторые шаги, но мне нужно записать их полностью для полноты картины.
- Переключитесь на пользователя, которого вы хотите использовать для доступа. Сделайте это прежде, чем делать что-либо еще.
- Используйте
id
команду для проверки текущего UID и групп. Используйтеid name-of-the-user
для проверки конфигурации на диске. Выйдите из системы и войдите снова, если они отличаются, и проверьте снова. - Используйте 'ls -l' для проверки целевого каталога. Не забудьте проверить символ сразу после разрешений. Может быть точка, означающая наличие контекста selinux, или может быть знак плюс, означающий, что установлены списки ACL Linux.
- Используйте «cd», чтобы войти в каталог.
- Выполнить необходимые действия над обычными файлами. Использовать
touch
для проверки доступа на запись,cat
для проверки доступа на чтение. - Проверьте, все ли работает так, как ожидается на уровне приложения (например, используйте браузер для доступа к URL-адресу, который должен привести к соответствующему действию, используйте ваш любимый инструмент редактирования, который ранее не работал, и т. д.)
- Добавьте любую из вышеперечисленных проверок на уровень приложения.
Если какое-либо действие не удается и вы не знаете почему, проверьте журналы на наличие предупреждений selinux или чего-то подобного. Вы также можете попробовать добавить prepend strace -o strace.log
к командной строке, а затем проверить strace.log на наличиедоступ запрещенсообщения. Но это все черная магия, пока вы не узнаете точную причинудоступ запрещен.