Я изменил владельца моего файла localhost /var/www/
и его подпапок и дал ему разрешение 777. Однако, когда я добавляю в него новую папку, новая папка не получает это разрешение автоматически. Как я могу дать разрешение папке 777 навсегда, чтобы, если я добавлю новую папку или файл, он получил такое же разрешение?
permissions
Камаль
источник
источник
find . -type d -exec chmod 777 {} +
для изменения всех каталогов на 777. Помните, что вы должны войти в систему как root для получения лучших результатов, и убедитесь, что вы находитесь в папке.Ответы:
Разрешения для вновь создаваемых файлов устанавливаются umask
источник
Вы можете использовать рекурсивную опцию в любое время.
sudo chown -R username /var/www
источник
Как уже упоминали другие , предоставление 777 разрешений
/var/www
- очень плохая идея, особенно в производстве.Лучшим решением было бы дать разрешения на запись только тем пользователям, которым необходимо изменить файлы. Один из способов сделать это:
создать новую группу
добавить пользователя (ей), которому необходимо изменить данные в
/var/www
этой групперекурсивно изменить владельца
/var/www
этой группынабор
umask
на/var/www
так что все вновь созданные файлы принадлежат группе мы создали.Другой вариант - снова использовать ACL, чтобы давать разрешения на запись только тем пользователям, которые в них нуждаются.
Вот подробные инструкции о сбое сервера .
Как правило, веб-сервер или другие сетевые службы или системные учетные записи пользователей не должны иметь разрешений на запись в файлы, обслуживаемые веб-сервером, поскольку это открывает возможность выполнения произвольного кода.
источник
Вы должны редактировать
/etc/apache/envvars
как root с вашим редактором по вашему выбору.Пример: ALT+F2
gksudo gedit /etc/apache2/envvars
Перейти в конец файла и добавить строку
umask XXX
.Где umask - это двоичная противоположность желаемого значения прав доступа.
Для 774 это будет 003. Для 777 плохая идея будет 000.
Сохранить.
Перезапустите Apache.
Пример:
sudo apache2ctl restart
Это повлияет только на файлы / папки, которые были недавно созданы пользователем apache.
Дополнительное примечание, чтение и запись - 6 в слоте пользователя, группы или любого пользователя.
источник
Кроме того, одно из готовых решений заключается в настройке вашего http-сервера для использования другой папки. Если вы используете Apache, просто отредактируйте его конфигурационные файлы. Таким образом, вам не нужно менять разрешения для / var / www, ведь это может быть плохой идеей (потенциальные проблемы с безопасностью).
И Umask - это ответ на Ваш вопрос. Его можно использовать для ограничения привилегий по умолчанию для вновь создаваемых папок и файлов. А разработчики дистрибутивов склонны использовать его для ограничения доступа к некоторым системным папкам.
источник
Я думаю, что вы хотите иметь право
/var/www
на запись для изменения файлов и каталогов. Я думаю, что лучшее решение - это установитьapache2-mpm-itk
и добавить в файл конфигурации виртуального хоста/etc/apache2/sites-available/default
:и запустите
chown your-username\: /var/www -Rv
этот путь, Apache для этого виртуального хоста будет работать с вашим UID / GID, и вы сможете редактировать файлы. Даже файлы, созданные PHP, будут иметь ваш UID / GIDисточник