У меня есть php, установленный на моей машине ubuntu. Корень сети /var/www
Я установил разрешения для этой папки следующим образом:
sudo chown -R ftpuser: www-data / var / wwwftpuser - это пользователь, которого я настроил, чтобы я мог ftp to / var / www с другого компьютера в сети. www-data - это использование пользователем php. Я дважды проверял использование whoami с php.
Всякий раз, когда я загружаю файл на компьютер, у группы нет разрешений к файлу. Поэтому, когда я пытаюсь получить доступ к нему в моем браузере через machine-name/new-file.php, мне сказали, что разрешение отклонено, и мне нужно пойти и chmod новый файл.
Мне интересно, есть ли способ, который я могу использовать по умолчанию пользователь / группа www-data имеет права доступа к новым файлам, поэтому мне не нужно сохранять chmod каждый новый файл?
Если ваш веб-сервер не может даже прочитать файлы, очень вероятно, что разрешения new-file.php
будут чем-то вроде 600 (чтение и запись для владельца). Найдите настройку umask в вашем приложении FTP и убедитесь, что это что-то вроде 007.
Если вашему веб-приложению необходимо chmod файлы (или другие операции, которые могут быть выполнены владельцем файла), вам нужен другой подход. Если вы используете Apache, вам следует рассмотреть возможность использования itk MPM . С помощью этого модуля вы можете заставить Apache запускать / открывать файлы с использованием того же пользователя, что и «ftpuser». Если вам нужна дополнительная информация по этому вопросу, добавьте комментарий.
Я уверен, что вы уже разобрали это, так что это для тех, кто с подобным запросом
запустил команду «change ownership» в вашей папке webroot:
sudo chown manny -R www
Это позволит вам заменить владельца «manny» вашим именем пользователя, что позволит вам писать / читать в папке www
Вы можете использовать ACL. Чтобы настроить ACL для Ubuntu 10.10, сначала установите файловые системы с опцией acl в /etc/fstab.
sudo vim / etc / fstab
UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults, acl 0 1
sudo mount -o remount, acl /
Затем сделайте группа, к которой пользователь может принадлежать для этой цели.
sudo groupadd developers sudo usermod -a -G developers $ username
Пользователь должен выйти из системы и снова стать членом группы разработчиков.
Конечно, не делайте этого, если у вас есть контент в каталоге / var / www, который вы хотите, но просто чтобы проиллюстрировать его настройку, чтобы начать :
sudo rm -rf / var / www sudo mkdir -p / var / www / public sudo chown -R root.developers / var / www / public sudo chmod 0775 / var / www / public sudo chmod g + s / var / www / public sudo setfacl -d -mu :: rwx, g :: rwx, o :: rx / var / www / public
Затем замените ссылки на «/ var / www» с «/ var / www / public» в файле конфигурации и перезагрузкой. [!d1 3]
sudo vim / etc / apache2 / sites-enabled / 000-default sudo /etc/init.d/apache2 reload
Если мы хотим ограничить удаление и переименовать всех, кроме пользователя, создавшего файл:
sudo chmod + t / var / www / public
Таким образом, если мы хотим создать каталоги для фреймворков, которые существуют за пределами корня документа Apache или, возможно, создают каталоги, доступные для записи на сервере, все еще легко.
Каталог журналов для записи Apache:
sudo mkdir / var / www / logs sudo chgrp www-data / var / www / logs sudo chmod 0770 / var / www / logs
Каталог библиотеки, читаемой в Apache:
sudo mkdir / var / www / lib sudo chgrp www-data / var / www / lib sudo chmod 0750 / var / www / lib
chmod g + s
и setfacl
(и их параметры).
– Greg
7 July 2015 в 16:20