Полномочия файла выходят с веб-сервером и FTP-сервером

(Я - развитие ответа Caleb, хотя большая часть релевантной информации уже будет в комментариях. Я полагаю, что сводка могла бы быть более удобной, чем необходимость просмотреть комментарии.)

Так, проблема, как описано в сообщении Caleb, была то, что Alexander удалил (или возможно изменил),/etc/init.d/apache2 и требуемый для возвращения его. Этот файл находится в apache-2.2-common. Очевидное apt-get install --reinstall apache2.2-common не восстанавливает файл, все же. Причина этого, на политику Debian, состоит в том, что файлы конфигурации не затронуты системой, после того как они изменились, если явно не спросил пользователь. См. политику Debian в отношении обработки файла конфигурации: Раздел 10.7.3. Кавычка:

Обработка конфигурационного файла должна соответствовать следующему поведению:

  1. локальные изменения должны быть сохранены во время обновления пакета, и

  2. конфигурационные файлы должны быть сохранены, когда пакет удален и только удален, когда пакет очищен.

Дополнения пакетов и удаления обрабатываются dpkg. dpkg, отличает два случая здесь, когда файл изменяется, и когда он был полностью удален. Посмотрите раздел в разделе опций, запускающемся с --force-things в dpkg странице справочника. (Соединение с dpkg 1,16 страницами Ubuntu, потому что я не мог найти Debian, сжимает страницы справочника онлайн. Если у Вас есть указатель, прокомментируйте.)

Таким образом для этих двух ситуаций

  1. Если Вы хотите conf файлы, которые были удалены, чтобы быть замененными переустановкой, необходимо передать --force-confmiss опция к dpkg.

  2. Если Вы хотите conf файлы, которые были изменены, но не удалены, чтобы быть замененными их версией по умолчанию на установке, необходимо передать обоих --force-confnew и --force-confask опции к dpkg. Как страница справочника объясняет, - сила-confnew отдельно только заменит измененный conf файл значением по умолчанию в случаях, когда значение по умолчанию будет более новым, чем первоначально установленное значение по умолчанию, т.е. на обновлении.

Если мы вызываем dpkg через Кв., мы должны передать эти опции Кв. Это сделано следующим образом для этих двух случаев выше:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall apache2.2-common

apt-get -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confask" install --reinstall apache2.2-common

Я не мог найти документацию для Dpkg::Options. Я нашел его путем поиска с помощью Google. Если Вы знаете о ком-либо, прокомментируйте.

Комментарии:

  1. Я думаю, сталкиваетесь ли Вы с ситуацией, где Вы испортили файл конфигурации и хотите отступить, более безопасно переименовать его и затем использовать --force-confmiss вместо того, чтобы просить все Ваши локальные модификации быть замененным значением по умолчанию на --force-confnew, который является в целом не, что Вы хотите.

  2. При работе с файлами конфигурации всегда сохраняйте их при управлении версиями. Это сделало бы выпуски испорченных файлов конфигурации спорными. Я использую и рекомендую подвижный. В этом случае (и вероятно любой случай :-)), Вы более обеспечены в этом контексте с помощью распределенного управления версиями, чем централизованная система управления версиями как подверсия. Хорошая программа для того, чтобы сделать это является etckeeper.

  3. Это также стоит упомянуть и, возможно, способствовало беспорядку здесь, этому с Кв. в сжатии, apache2.2-common не удаляет чисто, из-за способной ошибки 621720, который по совпадению покрывает случай apache2.2-common удаление. На отчет об ошибках необходимо будет использовать

    apt-get remove apache2.2-common -o pkgProblemResolver::FixByInstall=0`
    

    (проверенный мной).

  4. Посмотрите Все, что необходимо знать о conffiles: конфигурационные файлы, управляемые dpkg для обсуждения обработки файла конфигурации dpkg Raphaël Hertzog, одним из разработчиков dpkg. Он упоминает это --force-confask является новым в Сжатии. Он также упоминает это

    dpkg --status apache2.2-common
    

    дает список conffiles, наряду с другой информацией. или просто

    dpkg-query --showformat='${Conffiles}\n' --show apache2.2-common
    

    если Вы только хотите ту информацию.

Благодаря David Kalnischkies и Raphaël Hertzog для ответа на мои вопросы об этом (и сообщение мне я отправлял на неправильный список рассылки). Я думаю, что документация Debian в этом контексте могла быть улучшена, и конкретно dpkg страница справочника могла сделать с дополнительными примерами использования. Я поощряю людей здесь (кто очевидно готов выручить) также занимать время для содействия патчей документации к проектам бесплатного программного обеспечения как Debian. Это - ценная работа и существует недостаточно людей, делающих его.

5
07.12.2011, 21:26
1 ответ
usermod -a -G ftp user
chown -R :ftp /var/www/html
chmod -R g+w /var/www/html
1
27.01.2020, 20:43

Теги

Похожие вопросы