Титла: Chroot проблем ? Публикувано от: rers32e в 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 Титла: Chroot проблем ? Публикувано от: alabal в Mar 18, 2006, 11:11 Братко,
би ли изяснил логиката която стои зад редовете които си копирал от конзолата? Иначе казано какво точно се опитваш да направиш и защо по този начин? Титла: Chroot проблем ? Публикувано от: rers32e в 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 ![]() Титла: Chroot проблем ? Публикувано от: rers32e в Mar 18, 2006, 13:00 Проблема е бил именно в тези несъществуващи библиотеки , тъпото е , че под линукс не се оплаква в началото за липсваща библиотека , а изкарва грешна грешка
![]() Титла: Chroot проблем ? Публикувано от: ray в 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" ![]() Първо "ls" е част от пакета "coreutils" (Gentoo). Накратко те са: glibc, acl, attr; Виж и "info chroot" има малко повече информация. Може да се направи така че тези допълнителни библиотеки да не са нужни: ./configure --static при компилация на "coreutils" (тоест тези външни библиотеки ще бъдат свързани вътре в бинарния файл на "ls"). Успех.Румен Титла: Chroot проблем ? Публикувано от: rers32e в Mar 19, 2006, 09:53 Мерси
![]() Оправих се , идеята беше да 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 ми се струва глупост. Някакви идеи ? Титла: Chroot проблем ? Публикувано от: st_dimitrov в Mar 19, 2006, 10:56 Можеш да пуснеш httpd със който си поискаш потребител. Това става със директивите
User <user-a> Group <group-a> в httpd.conf. Най-често използваните са nobody. За целта трябва да си копираш *най-малко* файловете /etc/passwd и /etc/group в chroot средата. По този начин httpd се стартира като root, прочита си конфигурационния файл, отваря си необходимите портове и след това си понижава правата със тези на потребителя които си задал. Титла: Chroot проблем ? Публикувано от: в Mar 22, 2006, 09:01 Явно не мога да се изразявам правилно.
Как да стартирам апачето на порт > 1024 т.е. да не му трябват специални руут права за да отвори 80-ти порт и всичко това заключено в chroot |