LINUX.ORG.RU
решено ФорумAdmin

lighttpd в chroot'е не взлетает.

 , ,


0

1

Собственно subj.
Пытаюсь настроить на Gentoo lighttpd в chroot, но столкнулся с проблемой при запуске:

/usr/sbin/lighttpd-angel -D -f /etc/lighttpd/lighttpd.new.conf 
2018-04-05 05:24:04: (log.c.171) opening errorlog '/www/log/error.log' failed: Permission denied
lighttpd-angel.c.141: child (pid=1884) exited normally with exitcode: 255

С директорией и правами всё в порядке:
ls -l /chroot/lighttpd/www
total 12
drwxrwxr-x 2 lighttpd lighttpd 4096 Apr  5 05:08 htdocs
drwxrwxr-x 2 lighttpd lighttpd 4096 Apr  5 04:52 lib
drwxrwxr-x 2 lighttpd lighttpd 4096 Apr  5 04:52 log

Конфиг простой:
cat /etc/lighttpd/lighttpd.new.conf 
###############################################################################

var.basedir  = "/www"
var.logdir   = var.basedir + "/log"
var.statedir = var.basedir + "/lib"

server.modules = (
    "mod_access",
    "mod_accesslog"
)

include "mime-types.conf"

server.username      = "lighttpd"
server.groupname     = "lighttpd"

server.document-root = var.basedir + "/htdocs"
server.pid-file      = "/var/run/lighttpd.pid"

server.errorlog      = var.logdir  + "/error.log"

server.indexfiles    = ( "index.html" )

server.follow-symlink = "enable"

server.chroot      = "/chroot/lighttpd"

server.port = 8080

accesslog.filename   = var.logdir + "/access.log"
url.access-deny = ("~", ".inc")


Если же запускаю не в chroot'е, то всё в порядке.
Версия lighttpd 1.4.45
Кто-нибудь может подсказать в чём подводный камень?

★★★★★

Покажи права последовательно на /chroot, /chroot/www и /chroot/www/log/error.log(если этот файл существует)

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte
# ls -ld /chroot/lighttpd/
drwxr-x--- 8 root root 4096 Apr  5 05:12 /chroot/lighttpd/
# ls -ld /chroot/lighttpd/www/
drwxrwxr-x 5 lighttpd lighttpd 4096 Apr  5 04:52 /chroot/lighttpd/www/
# ls -ld /chroot/lighttpd/www/log/
drwxrwxr-x 2 lighttpd lighttpd 4096 Apr  5 04:52 /chroot/lighttpd/www/log/

причём без чрута с этой же директорией нормально работает.

WatchCat ★★★★★ ()
Последнее исправление: WatchCat (всего исправлений: 2)
Ответ на: комментарий от WatchCat

drwxr-x--- 8 root root 4096 Apr 5 05:12 /chroot/lighttpd/

доступ в внутрь /chroot/lighttpd возможен ТОЛЬКО для рута - у others нет ВООБЩЕ никаких прав(---)

Решение - как минимум разрешить проход сквозь директорию всем(но не чтение):

chmod o+x /chroot/lighttpd

Опционально(если вдруг нужно что-то читать непосредственно из /chroot/lighttpd) - разрешить и чтение.

Или как вариант - не разрешать доступ всем, а сменить группу с root на lighttpd:

chgrp lighttpd /chroot/lighttpd

причём без чрута с этой же директорией нормально работает.

скорее всего без чрута понижение привилегий происходит ПОЗЖЕ, и часть операций выполняется от рута, у которого есть доступ :-)

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: комментарий от Pinkbyte

Спасибо, заработало.
Странно, что bind с такими правами нормально работает, а вот lighttpd почему-то не захотел.

WatchCat ★★★★★ ()
Ответ на: комментарий от WatchCat

Бинду нужно было слушать 53 порт udp и tcp, следовательно, он обязательно запускался от рута.

Black_Shadow ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.