Это может быть вопрос о нобе, но он не может найти ответ нигде.
У меня есть проблема, проблема с которой еще одна проблема с файлами помогла мне решить проблему ALMOST.
Я создал пользователя в linux ( danny ), который имеет доступ к sudo. Я также создал новую группу, имя которой ТАКЖЕ является danny , и добавил пользователя danny в эту группу. Эта группа имеет доступ к sudo (root).
У меня есть все файлы и папки в моей папке www, принадлежащей группе danny / danny.
У меня есть код загрузки изображения, который является php . Этот код не может загружать изображения в папку под названием « images », находящуюся в папке www , если я не предоставил разрешения для 777 изображений.
Итак, я выполнил ответ по связанному вопросу и выяснил, что пользователь, который запускает сценарий загрузки, является « www-data ».
Согласно ответу на ссылку на другой вопрос, который я опубликовал, мне нужно добавить www-данные в группу … Но я застрял здесь …
К какой группе я должен добавить? Что мне делать дальше?
Любые советы приветствуются.
Кстати, вот некоторая информация о www-data и danny
id www-data: uid=33(www-data) gid=33(www-data) groups=33(www-data) id danny uid=1000(danny) gid=33(www-data) groups=33(www-data)
Спасибо, и если вам нужно больше информации, просто дайте мне знать …
На самом деле, ваша проблема заключается в том, что вам нужно, чтобы пользовательские www-данные имели доступ для записи в папку изображений .
И вы, вероятно, хотите, чтобы пользователь danny имел полный доступ к папке.
EDIT: Дополнительное слово предупреждения: наличие файлов, которые можно записать на ваш веб-сервер, всегда является угрозой безопасности . Обязательно проверьте файлы, которые написаны, и убедитесь, что люди не могут загрузить или изменить код. Резюме: * Не позволяйте веб-серверу запускать скрипты, которые можно записать, или в папку для записи. Поэтому убедитесь, что только изображения / папка записана, и дважды проверьте, что все, что написано, на самом деле является образом!
Или:
В общем, НЕТ , ваш контент не должен принадлежать www-данным. Единственный контент, который должен принадлежать www-данным, – это конкретные файлы, которые вам нужны для веб-приложений, которые могут быть изменены, и конкретные каталоги, которые им необходимы, чтобы иметь возможность создавать или удалять файлы. Остальные не должны быть (или доступны для записи) ) по www-данным, поскольку каждый файл, который могут записывать www-данные, – это файл, который злоумышленник, который нарушает ваш веб-сервер (включая любые скрипты или веб-приложения, которые он запускает), сможет заменить любыми вредоносными данными, которые он может выбрать ,
Особенно важно, чтобы www-данные не были зарегистрированы или не могли записываться в любой исполняемый файл (например, скрипты, флеш-файлы, документы в Word или другие форматы с возможностями макроса и т. Д.), Поскольку замена их на вредоносные исполняемые файлы обеспечивала бы легкую способ атаковать компьютеры пользователей или сам веб-сервер.
Я думаю, что имеет смысл, что файлы, используемые www-данными, принадлежат www-data. Я имею в виду, кому еще это нужно? Самая важная часть состоит в том, что веб-приложение не должно иметь доступ на запись к своему собственному веб-корню. Причина заключается в том, что уязвимость в обход каталога в функции PHP, например copy()
или file_put_contents()
может позволить злоумышленнику сбросить бэкдор .php в ваш веб-корень.
Еще одна важная атака, о которой нужно знать, заключается в том, что другой процесс или пользователь в системе может захотеть прочитать или записать в ваш веб-корень, поэтому важно, чтобы последнее число было равным нулю. Среднее число – это группа, и вы не используете ее, поэтому она также должна быть равна нулю. Следующие 2 команды делают ваш веб-корневой читабельным и исполняемым с помощью apache и только apache. Иногда используется другая учетная запись пользователя, поэтому запустите систему <?php system('whoami')?>
Чтобы узнать правильную учетную запись пользователя.
chown www-data -R /path/to/webroot
chmod 500 -R /path/to/webroot
К тому времени, когда злоумышленник имеет удаленное выполнение кода, чтобы изменить привилегии веб-корня его игры. Все дело в том, чтобы скрыть успех от успеха.
Я бы добавил пользователя www-data для группировки danny.
usermod -a -G danny www-data
Таким образом, www-данные могут войти в место Дэнни, но не наоборот.
Чтобы пользователь www-data мог писать в маску разрешения папки Danny, она должна быть похожа на (где подстановочный знак означает любое значение в порядке):
d???rwx???