измените апачский корень документа на /

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

проксирование является опцией, но мы закончили сценарий, и он просто хочет изменить корень документа на / в конце концов, это - просто университетский проект.

В окнах мы смогли изменить корень документа на C: и это работало, человечность, никакая удача, устанавливающая его на / таким образом, как позволить апачу работать на всей машине /

1
задан 7 June 2016 в 21:07

3 ответа

Я знаю, что это - одна из самых глупых идей, которые Вы услышали о, но мой клиент.

Это.

И Вы не можете с нормальной установкой. Apache был бы необходим, чтобы быть выполненным как "корень", и Apache имеет встроенную проверку защиты на нем. Ошибочное уведомление Вы будете видеть...

Apache не был разработан для обслуживания страниц при выполнении как корень. Существуют известные условия состязания, которые позволят любому локальному пользователю читать любой файл в системе. Если Вы все еще требуете служить страницам, поскольку корень затем добавляет-DBIG_SECURITY_HOLE к огибающей переменной CFLAGS и затем восстанавливает сервер. Это настоятельно рекомендуется, что Вы вместо этого изменяете Пользовательскую директиву в своем httpd.conf файле для списка некорневого пользователя.

Таким образом, чтобы сделать, что Вы хотите сделать Вас, должны...

  1. добавить -DBIG_SECURITY_HOLE к CFLAGS огибающая переменная.
  2. восстановите апачский сервер.
  3. установка http.conf с корнем как пользователь.

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

7
ответ дан 3 December 2019 в 06:19

Можно выполнить немного, с чем Вы могли бы хотеть FollowSymLinks и корректные полномочия на файлах.

Этот метод только создаст ссылки на данные, где Вы указываете, это не даст Вам всю файловую систему, если Вы не должны были создавать символьные ссылки для каждого пути, конечно, и даже затем, Вы могли бы столкнуться с проблемами с определенными системными путями.

По умолчанию Apache2 имеет FollowSymLinks на по умолчанию, таким образом, никакая дополнительная апачская конфигурация не была необходима. Ради ответа на этот вопрос я вращал экземпляр OpenStack и сделал выполнять шаги.

Я упомяну, я принял бы, больше будет необходим до установки полномочий, на самом деле довольно страшных.

Возможно, корень, имеющий рабочий экземпляр apache2, заставляет его работать? Я не думаю, что www-данные имели бы доступ к/home/ubuntu по умолчанию.Странно.

ubuntu@test:/home/ubuntu# sudo su
root@test:/home/ubuntu# apt-get install apache2
root@test:/home/ubuntu# ps awux | grep apache2
root     30862  0.0  0.1  71300  2572 ?        Ss   12:17   0:00 /usr/sbin/apache2 -k start
www-data 30865  0.0  0.2 360464  4252 ?        Sl   12:17   0:00 /usr/sbin/apache2 -k start
www-data 30866  0.0  0.2 557344  5024 ?        Sl   12:17   0:00 /usr/sbin/apache2 -k start
root@test:/home/ubuntu# cd /var/www/html/
root@test:/var/www/html# ls
index.html
root@test:/var/www/html# ln -s /tmp tmp-symlink
index.html  tmp-symlink
root@test:/var/www/html# cd tmp-symlink
root@test:/var/www/html/tmp-symlink# ls
hsperfdata_ubuntu
root@test:/var/www/html# ln -s /home/ubuntu/ ubuntu-user
root@test:/var/www/html# cd /home/ubuntu/
root@test:/home/ubuntu# ls
file  test  test_directory  test.sh

tmp-symlink screenshot


ubuntu-user screenshot

4
ответ дан 3 December 2019 в 06:19

В первую очередь, вот мое решение, которое может работать с apache2-2.4.10 (в результате, необходимо будет заменить его версией, которая находится в источниках программного обеспечения).

apt-get -y install dpkg-dev debhelper libaprutil1-dev libapr1-dev libpcre3-dev liblua5.1-0-dev autotools-dev
apt-get source apache2.2-common
cd apache2-2.4.10
export DEB_CFLAGS_SET="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -DBIG_SECURITY_HOLE"
dpkg-buildpackage -b
cd ..
dpkg -i "name of the package apache2-bin* you generated with dpkg-buildpackage -b"
dpkg -i "name of the package apache2-common* you generated with dpkg-buildpackage -b"

Затем измените httpd.conf или/etc/apache2/envvars файл для установки корня вместо www-данных (можно искать строку www-данных и заменить ее корнем), и перезапустите апача.

Во-вторых, вот объяснение:

  1. Установленные зависимости для использования dpkg-buildpackage и dpkg
  2. Получил источник из репозитория
  3. Измененные переменные среды CFLAGS, используемый dpkg-buildpackage и, добавили-DBIG_SECURITY_HOLE к нему
  4. Перемещенный к апачскому сгенерированному каталогу и выполнил dbkg-buildpackage для перекомпиляции пакета с измененным CFLAGS
  5. Возвращенный в родительском каталоге для использования сгенерированных пакетов
  6. Я устанавливаю apache2-мусорное-ведро пакетов и apache2-распространенный

    sudo apt-get install apache2-bin apache2-common
    
-1
ответ дан 3 December 2019 в 06:19

Другие вопросы по тегам:

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