Титла: Mysql chroot Публикувано от: st_dimitrov в Mar 12, 2006, 21:53 цял ден се опитвам да заключа mysql в chroot но все ми бяга...
?! Рових се известно време в гугъл и намерих един пич, който е имал същия проблем, но е с бсд явно... препратка Помагайте ![]() Титла: Mysql chroot Публикувано от: daf в Mar 12, 2006, 22:45 Нямам линукс под ръка но си мисля, че може да е проблем с pam модулите. Копирай в chroot-a `id` и пробвай `id mysql`... вероятно ще ти изкара грешка, която ще те насочи към решението.
Титла: Mysql chroot Публикувано от: st_dimitrov в Mar 12, 2006, 23:13 root@darkstar:/backup/chroots/mysql# chroot /backup/chroots/mysql/ /bin/bash
I have no name!@darkstar:/# echo `id mysql` id: mysql: No such user I have no name!@darkstar:/# echo `id` uid=0 gid=0 groups=0,1,2,3,4,6,10,11 I have no name!@darkstar:/# exit exit root@darkstar:/backup/chroots/mysql# Титла: Mysql chroot Публикувано от: daf в Mar 13, 2006, 02:59 пробвай да копираш /etc/pam.d в chroot-а.
Титла: Mysql chroot Публикувано от: st_dimitrov в Mar 13, 2006, 07:11 Нямам PAM
![]() Титла: Mysql chroot Публикувано от: vesselinkolev в Mar 13, 2006, 10:04 Понеже гледам, че никой не дава един нормален отговор (това с PAM беше наистина много сърцераздирателно, все едно в chroot ще имаш процеси на удостоверяване).
Схемата е следната. В chroot трябва да имаш glibc, или поне онази част от този пакет, която да ти дава възможност да работиш с nsswitch.conf. Виж както ще ти даде като списък с библиотеки следния команден ред: $ ldd /usr/local/mysql/bin/mysqld_safe Вземи този списък и файловете от него копирай chroot директорията, в поддиректориите, в които следва да бъдат библиотеките. Т.е. всичко, което е в /lib, отива в ${CHROOT_DIR}/lib и т.н. Само предположение (не съм заключвал mysql), но в /etc поддиректорията в chroot, трябва да имаш задължително следните файлове: group host.conf hosts hosts.allow hosts.deny localtime nsswitch.conf passwd resolv.conf services Именно в passwd ще опишеш потребителя, с чиито права ще стартираш mysql процеса. Не те съветвам в chroot средата да слагаш каквито и да са командни интерпретатори. В твоя случай това може даже да е опасно. Т.е. в ${CHROOT_DIR}/bin не бива да има примерно bash, sh и т.н. интерпретатори. Титла: Mysql chroot Публикувано от: st_dimitrov в Mar 13, 2006, 13:42 mysql-a ми е от готов пакет - статично компилиран... лд и лдд нищо не ми връщат
![]() mysqld_safe представлява един шел скрипт, като реално изпълнимия файл е mysqld root@darkstar:/backup/chroots/mysql# ldd usr/local/mysql/bin/mysqld not a dynamic executable root@darkstar:/backup/chroots/mysql# root@darkstar:/backup/chroots/mysql# ld usr/local/mysql/bin/mysqld ld: warning: cannot find entry symbol _start; defaulting to 00000000080480e0 root@darkstar:/backup/chroots/mysql# root@darkstar:/backup/chroots/mysql# head usr/local/mysql/bin/mysqld -c 29 && echo "" ELF4 root@darkstar:/backup/chroots/mysql# приемам всякакви насоки ![]() Титла: Mysql chroot Публикувано от: vesselinkolev в Mar 13, 2006, 18:59
Това не променя много задачата. Няма да гадая (не знам с каква дистрибуция си), но можеш първо да копираш /lib в ${CHROOT_DIR}/lib. След това указаните от мен файлове в предишния ми отговор от /etc/ в ${CHROOT_DIR}/etc. Може да се наложи да направиш и някой устройства в ${CHROOT_DIR}/dev (прмерно /dev/null, /dev/zero, /dev/random и /dev/urandom). Титла: Mysql chroot Публикувано от: st_dimitrov в Mar 17, 2006, 07:22 Проблема се оказа в библиотечката libnss_compat.so.2
![]() |