Автор Тема: Chroot проблем ?  (Прочетена 3324 пъти)

rers32e

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Chroot проблем ?
« -: Mar 18, 2006, 10:27 »
Ето го проблема :

root@darkstar:/# mkdir /test
root@darkstar:/# mkdir /test/bin
root@darkstar:/# cp /bin/bash /test/bin/bash
root@darkstar:/# cp /bin/ls /test/bin/ls
root@darkstar:/#
root@darkstar:/#
root@darkstar:/# chroot /test/ /bin/ls
chroot: cannot run command `/bin/ls': No such file or directory
root@darkstar:/# chroot /test /bin/ls
 chroot: cannot run command `/bin/ls': No such file or
directory
root@darkstar:/#

Ясно ми е , че няма да тръгне , но просто това е нулевата стъпка , /bin/ls не връща очакваната грешка за липсващи библиотеки , той просто не се намира
Явно пропускам нещо много съществено , дали не трябват някакви env  ?
Къде греша ?
Ползвам slackware 10.2 , 2.4.31 kernel
Активен

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
Chroot проблем ?
« Отговор #1 -: Mar 18, 2006, 11:11 »
Братко,
би ли изяснил логиката която стои зад редовете които си копирал от конзолата?
Иначе казано какво точно се опитваш да направиш и защо по този начин?
Активен

It makes you awful glad that you were born a man.

rers32e

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Chroot проблем ?
« Отговор #2 -: Mar 18, 2006, 11:34 »
Това става под БиЕсДи

root@fbsd:/# mkdir /test
root@fbsd:/# mkdir /test/bin
root@fbsd:/# cp /bin/bash /test/bin/bash
root@fbsd:/# cp /bin/ls /test/bin/ls
root@fbsd:/#
root@fbsd:/#
root@fbsd:/# chroot /test/ /bin/ls
ELF interpreter /libexec/ld-elf.so.1  not found
Abort trap

Т.е. оплаква се , че нямам /libexec/ld-elf.so.1 , което си е така , въпроса е , че под slackware казва , че не може да открие програмата която се опитвам да стартирам

Не искам да chmod-на ls '<img'> , просто го давам като елементарен пример , че не работи като цяло т.е. някъде греша
Активен

rers32e

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Chroot проблем ?
« Отговор #3 -: Mar 18, 2006, 13:00 »
Проблема е бил именно в тези несъществуващи библиотеки , тъпото е , че под линукс не се оплаква в началото за липсваща библиотека , а изкарва грешна грешка '<img'>
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1452
    • Профил
Chroot проблем ?
« Отговор #4 -: Mar 18, 2006, 13:34 »
Здравей,
Проблема не е само в библиотеката/ките.
Пробвай следното:
#which ls
/bin/ls
#ldd /bin/ls
        linux-gate.so.1 =>  (0xffffe000)
        librt.so.1 => /lib/librt.so.1 (0xb7fb8000)
        libacl.so.1 => /lib/libacl.so.1 (0xb7fb2000)
        libc.so.6 => /lib/libc.so.6 (0xb7e96000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7e82000)
        /lib/ld-linux.so.2 (0xb7fdc000)
        libattr.so.1 => /lib/libattr.so.1 (0xb7e7e000)
...END...
Сега можеш да видиш срещу/със кои библиотеки е свързан *моя* "ls" '<img'>
Първо "ls" е част от пакета "coreutils" (Gentoo).
Накратко те са: glibc, acl, attr;
Виж и "info chroot" има малко повече информация.
Може да се направи така че тези допълнителни библиотеки да не са нужни: ./configure --static при компилация на "coreutils" (тоест тези външни библиотеки ще бъдат свързани вътре в бинарния файл на "ls").
Успех.Румен
Активен

rers32e

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
Chroot проблем ?
« Отговор #5 -: Mar 19, 2006, 09:53 »
Мерси '<img'>
 Оправих се , идеята беше да chroot-на apache+mod_ssl+mod_php+mod_security и mysql и за момента мисля , че работат читаво , чуда се единствено дали има начин да стартирам апачето не като супер юзър (то така или иначе му трябва единствено за да отвори 80-ти порт) , но все пак , мисля си ако преместа порта от 80 на 8080 и редиректвам с iptables , дали има начин да кажа на апачето да не се пуска с начални права на супер юзър.
В момента го стартирам така :
chroot /chroot /usr/local/apache/bin/httpd -DSSL
но chroot-та изисква root , а пък после ако направа нещо от рода на su apache -c /usr/local/apache/bin/httpd -DSSL , ще ми се оплаче , че нямам su в chroot , а пък да имам su в chroot ми се струва глупост.
Някакви  идеи ?
Активен

st_dimitrov

  • Напреднали
  • *****
  • Публикации: 102
    • Профил
    • WWW
Chroot проблем ?
« Отговор #6 -: Mar 19, 2006, 10:56 »
Можеш да пуснеш httpd със който си поискаш потребител. Това става със директивите

User <user-a>
Group <group-a>

в httpd.conf.

Най-често използваните са nobody. За целта трябва да си копираш *най-малко* файловете /etc/passwd и /etc/group в chroot средата.
По този начин httpd се стартира като root, прочита си конфигурационния файл, отваря си необходимите портове и след това си понижава правата със тези на потребителя които си задал.
Активен

  • Гост
Chroot проблем ?
« Отговор #7 -: Mar 22, 2006, 09:01 »
Явно не мога да се изразявам правилно.
Как да стартирам апачето на порт > 1024 т.е. да не му трябват специални руут права за да отвори 80-ти порт и всичко това заключено в chroot
Активен