У меня на локальном компьютере установлена ubuntu с apache / php / mysql.
Теперь у меня есть каталог по адресу / var / www, внутри которого у меня есть несколько моих текущих проектов. Я также работаю с открытым исходным кодом (drupal, magento, sugarcrm).
Проблема, с которой я сталкиваюсь, заключается в изменении разрешения файла с помощью терминала. Иногда мне нужно изменить разрешение всей папки и ее последующих вложенных папок и файлов. Я должен индивидуально изменить, используя
sudo chmod 777 foldername
Как я могу сделать это рекурсивно?
Кроме того, почему я всегда должен это делать 777, я пытался 755 для папок и 644 для файлов, но это не сработает.
Просто добавьте -R возможность рекурсивного изменения прав доступа к файлам. Например, рекурсивно добавьте разрешения на чтение и запись для владельца и группы на foldername:
chmod -R ug+rw foldername
Разрешения будут такими, как 664 или 775.
Установка разрешений на 777 - это крайне обескуражен. Вы получаете ошибки либо в Apache, либо в вашем редакторе относительно разрешений, потому что apache работает под другим пользователем (www-data), чем ты.
Если вы хотите написать на /var/www, добавьте себя в www-data сгруппируйте и установите соответствующие разрешения umask+.
Добавьте себя в www-data группа: sudo adduser $USER www-data
Измените владельца файлов в /var/www: sudo chown -R www-data:www-data /var/www
Измените umask, чтобы вновь созданные файлы Apache также предоставляли группе права на запись. Добавь umask 007 к /etc/apache2/envvars.
Предоставьте себя (технически, группе www-data) разрешения на запись: sudo chmod -R g+w /var/www.
Вы можете изменить вложенные папки и файлы в Nautilus. Как вы можете видеть на изображении ниже. Чтобы иметь разрешения на кнопки, вы можете включить эту опцию в Ubuntu Tweak.
Вам не должен быть нужен 777 ни для чего. В худшем случае вам нужно будет сменить владельца определенных файлов и каталогов на пользователя "www-data".
Если вы используете метод членства в группе Лекенштейна, измените 755 на 775 и 644 на 664 соответственно выше, а затем принудительно установите групповую привязку:
Если вы хотите, чтобы все ваши файлы были доступны для чтения всему миру (т.Е. это просто статический набор HTML-файлов / изображений), затем используйте эту команду:
chmod -R a+r <base directory>
Это позволит рекурсивно просмотреть все файлы и подкаталоги и добавить к ним разрешение на чтение.
предупреждение: Не делайте этого для исполняемых файлов! Только файлы, которые должны быть видны всем.