Это может быть вопрос noob, но нигде не могу найти ответ.
У меня проблема, которая Другая проблема с правами доступа к файлу помогли мне ПОЧТИ решить.
Я создал пользователя в linux ( danny ), у которого есть доступ sudo. Я также создал новую группу с именем ALSO danny и добавил пользователя danny в эту группу. Эта группа имеет доступ sudo (root).
У меня есть все файлы и папки в моей папке www , принадлежащей группе danny / danny.
У меня есть код загрузки изображения, который PHP . Этот код не может загружать изображения в папку с именем « images », которая находится в папке www , ЕСЛИ Я не дам разрешения папке «images» 777 .
Итак, я проследил за ответом на связанный вопрос и выяснил, что пользователь, который запускает скрипт загрузки, является « www-data ».
Согласно ответу по ссылке на другой вопрос, который я написал, мне нужно добавить www-data в группу ... Но я застрял здесь ...
К какой группе добавить? Что мне делать отсюда?
Любые советы приветствуются.
Кстати, вот некоторая информация о 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-data , чтобы иметь доступ для записи в папку изображений .
И вы, вероятно, хотите, чтобы пользователь danny также имел полный доступ к папке.
РЕДАКТИРОВАТЬ: Дополнительное предупреждение: наличие файлов, доступных для записи вашим веб-сервером, всегда представляет собой угрозу безопасности . Обязательно проверьте записанные файлы и убедитесь, что люди не могут загружать или изменять код. Резюме: * Не позволяйте вашему веб-серверу запускать сценарии с возможностью записи или в папке с возможностью записи.Поэтому убедитесь, что для записи доступна только папка images /, и дважды проверьте, что все, что написано, на самом деле является изображением!
Либо:
Как правило, НЕТ , ваш контент не должен , а принадлежать www-data. Содержимое только , которое должно принадлежать www-data, - это конкретные файлы, которые вам нужны веб-приложениям, чтобы иметь возможность изменять, и определенные каталоги, в которых они должны иметь возможность создавать или удалять файлы. Остальное должно не принадлежать (или быть доступным для записи) www-data, потому что каждый файл, который www-data может записывать, является файлом, который злоумышленник, взломавший ваш веб-сервер (включая любые скрипты или веб-приложения, которые он запускает), сможет заменить на какие бы вредоносные данные он ни выбрал.
Особенно важно, чтобы www-data не принадлежала или могла записывать в какой-либо исполняемый файл (например, скрипты, флэш-файлы, документы в Word или других форматах с макросами). возможности и т. д.), потому что замена их вредоносными исполняемыми файлами предоставит простой способ атаковать компьютеры пользователей или сам веб-сервер.
Я думаю, что имеет смысл, что файлы, используемые www-data, принадлежат www-data. Я имею в виду, кому еще он должен принадлежать? Самая важная часть заключается в том, что веб-приложение не должно иметь доступа на запись к собственному корневому веб-каталогу. Причина в том, что уязвимость обхода каталога в функции PHP, такой как copy ()
или file_put_contents ()
, может позволить злоумышленнику добавить бэкдор .php внутрь. ваш веб-корень.
Еще одна важная атака, о которой следует знать, - это то, что другой процесс или пользователь в системе может захотеть прочитать или записать в ваш корневой веб-сайт, поэтому важно, чтобы самое последнее число было нулем. Среднее число - это группа, которую вы не используете, поэтому оно также должно быть равно нулю. Следующие две команды делают ваш корневой веб-каталог доступным для чтения и выполнения для 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 group, маска разрешений должна быть такой (где подстановочный знак означает, что любое значение в порядке):
d???rwx???