[Question] Chroot mysql nhưng vẫn không chịu chạy |
20/09/2011 20:09:58 (+0700) | #1 | 247449 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
em đã hoàn tất hết các công đoạn config mysql. bây giờ vào phần cuối là chroot mysql nữa là xong nhưng làm mãi mà nó vẫn ko chịu chạy . em làm theo các bước như sau :
cài đặt mysql
Code:
groupadd mysql
useradd -g mysql mysql -d /dev/null -s /sbin/nologin
./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-unix-socket-path=/tmp/mysql.sock --with-mysqld-ldflags=-all-static --without-innodb
make
make install
strip /usr/local/mysql/libexec/mysqld
scripts/mysql_install_db
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
tạo chroot
Code:
mkdir -p /chroot/mysql/dev
mkdir -p /chroot/mysql/etc
mkdir -p /chroot/mysql/tmp
mkdir -p /chroot/mysql/var/tmp
mkdir -p /chroot/mysql/usr/local/mysql/libexec
mkdir -p /chroot/mysql/usr/local/mysql/share/mysql/english
chown -R root:sys /chroot/mysql
chmod -R 755 /chroot/mysql
chmod 1777 /chroot/mysql/tmp
cp /usr/local/mysql/libexec/mysqld /chroot/mysql/usr/local/mysql/libexec/
cp /usr/local/mysql/share/mysql/english/errmsg.sys /chroot/mysql/usr/local/mysql/share/mysql/english/
cp /etc/hosts /chroot/mysql/etc/
cp /etc/host.conf /chroot/mysql/etc/
cp /etc/resolv.conf /chroot/mysql/etc/
grep mysql /etc/group > /chroot/mysql/etc/group
grep mysql /etc/passwd > /chroot/mysql/etc/passwd
mknod /chroot/mysql/dev/null c 2 2
chown root:sys /chroot/mysql/dev/null
chmod 666 /chroot/mysql/dev/null
copy database của mysql
Code:
cp -R /usr/local/mysql/var/ /chroot/mysql/usr/local/mysql/var
chown -R mysql:mysql /chroot/mysql/usr/local/mysql/var
chạy chroot
Code:
chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &
kết quả :
Code:
mysql 2015 0.0 2.8 31420 3552 pts/0 Sl 09:32 0:00 /usr/local/mysql/libexec/mysqld
root 2023 0.0 0.5 4000 696 pts/0 R+ 09:44 0:00 grep mysql
đến đây rồi thì hết biết làm sao để cho mydsql chạy . hướng dẫn chỉ đến đây thôi. mọi người giúp em cách để cho mysql chạy với chế độ chroot đi ạ. |
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
20/09/2011 21:09:17 (+0700) | #2 | 247454 |
|
dexxa
Member
|
0 |
|
|
Joined: 01/07/2006 20:35:01
Messages: 121
Offline
|
|
Trước tiên phải hiểu rõ chroot là gì và cấu trúc file system thì mới có thể chroot chuẩn được. Tham khảo thêm ở đây
http://www.symantec.com/connect/articles/securing-mysql-step-step
|
|
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
20/09/2011 21:22:29 (+0700) | #3 | 247460 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
dexxa wrote:
Trước tiên phải hiểu rõ chroot là gì và cấu trúc file system thì mới có thể chroot chuẩn được. Tham khảo thêm ở đây
http://www.symantec.com/connect/articles/securing-mysql-step-step
mình đã làm giống như cái link ở trên, nếu cậu xem thì sẽ thấy, mình chỉ có chỉnh lại 1 số chi tiết thôi vì cái ở trên dùng cho BSD còn mình là centos . cái trên chỉ có chỉ đến lúc khởi động mysql nhưng ko có cho biết kết quả phải như thế nào thì mới đúng, làm sao để đăng nhập vào mysql được. cậu có thể chỉ giúp mình được không |
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 07:34:38 (+0700) | #4 | 247478 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Thử:
ldd /chroot/mysql/usr/local/mysql/libexec/mysqld
rồi gởi thông tin lên coi? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 10:17:56 (+0700) | #5 | 247489 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
conmale wrote:
Thử:
ldd /chroot/mysql/usr/local/mysql/libexec/mysqld
rồi gởi thông tin lên coi?
Code:
[root@dhcppc7 ~]# ldd /chroot/mysql/usr/local/mysql/libexec/mysqld
not a dynamic executable
em đã thử thay file /etc/init.d/mysql bằng file có nội dung sau
Code:
#!/bin/sh
CHROOT_MYSQL=/chroot/mysql
SOCKET=/tmp/mysql.sock
MYSQLD=/usr/local/mysql/libexec/mysqld
PIDFILE=/var/run/mysqld/`hostname`.pid
CHROOTUID=/usr/local/bin/chrootuid
echo -n " mysql"
case "$1" in
start)
rm -rf ${CHROOT_PHP}/${SOCKET}
nohup ${CHROOTUID} ${CHROOT_MYSQL} mysql ${MYSQLD} >/dev/null 2>&1 &
sleep 5 && ln ${CHROOT_MYSQL}/${SOCKET} ${CHROOT_PHP}/${SOCKET} && ln ${CHROOT_MYSQL}/${SOCKET} ${SOCKET}
;;
stop)
kill `cat ${CHROOT_MYSQL}/${PIDFILE}`
rm -rf ${CHROOT_MYSQL}/${SOCKET}
;;
*)
echo ""
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0
em tạo thêm 1 file mysql.sock ở thư mục chroot/mysql/tmp/
sau đó khởi động mysql thì kết quả là
Code:
/etc/init.d/mysql start
mysqlln: creating hard link `/tmp/mysql.sock' to `/chroot/mysql//tmp/mysql.sock': File exists
không biết là bị sai ở đâu nữa. nhờ anh chỉ giúp
|
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 10:33:22 (+0700) | #6 | 247492 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Sao mysqld nằm trong chroot: /chroot/mysql/usr/local/mysql/libexec/mysqld mà script khởi động lại khởi động cái "/usr/local/mysql/libexec/mysqld" là sao?
thử ls -la /chroot/mysql/usr/local/mysql/libexec/mysqld
và: file /chroot/mysql/usr/local/mysql/libexec/mysqld xem thử nó báo cái gì? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 10:39:51 (+0700) | #7 | 247494 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
conmale wrote:
Sao mysqld nằm trong chroot: /chroot/mysql/usr/local/mysql/libexec/mysqld mà script khởi động lại khởi động cái "/usr/local/mysql/libexec/mysqld" là sao?
thử ls -la /chroot/mysql/usr/local/mysql/libexec/mysqld
và: file /chroot/mysql/usr/local/mysql/libexec/mysqld xem thử nó báo cái gì?
Code:
ls -la /chroot/mysql/usr/local/mysql/libexec/mysqld
-rwxr-xr-x 1 root root 4019924 Sep 20 09:28 /chroot/mysql/usr/local/mysql/libexec/mysqld
Code:
file /chroot/mysql/usr/local/mysql/libexec/mysqld
/chroot/mysql/usr/local/mysql/libexec/mysqld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, statically linked, for GNU/Linux 2.6.9, stripped
em nghĩ là khi mình chroot rồi thì cái thư mục gốc bây h nằm ở /chroot/mysql nên mysqld bây h sẽ vẫn nằm ở /usr/local/mysql/libexec/mysqld |
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 10:55:54 (+0700) | #8 | 247495 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
OK, vậy là /chroot/mysql/usr/local/mysql/libexec/mysqld là static binary. Khỏi lo đến linked library.
- Riêng phần init script cho mysql thì em làm sai rồi. Em muốn chạy bản mysql trong /chroot/mysql/usr/local/mysql/ mà sao trong init script lại dùng bản /usr/local/mysql/ ?
- sock được mysql tự động tạo ra chớ em không thể tự tạo ra được nó. Muốn tạo sock ở đâu thì phải chỉnh my.cnf.
Nói chung em bị hổng nhiều thứ quá mà đã vội vã nhảy tới "chroot". Đây là cái kẹt của "step by step". Làm mà không biết tạo ra mình phải làm như vậy. Quá nguy hiểm. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 11:02:08 (+0700) | #9 | 247497 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
vậy h em phải làm thế nào để cho mysql nó chạy trong chroot ạ, anh comanle có thể chỉ giúp em được không ạ. đúng là em vẫn còn hổng nhiều kiến thức quá. anh có thể tư vấn giúp em là bây h nên đọc thêm sách gì để nâng cao thêm kiến thức không ạ. em chỉ mới học basic về LPI thôi. cảm thấy vẫn chưa đủ.
- thực ra em củng đã thử tự build rồi chroot mysql nhưng không chạy nên mới test thử bằng cách là làm giống y như hd xem thế nào, nếu như hd mà chạy được có nghĩa là mình làm sai 1 cái gì đó. sau đó mới rà lại để xem chỗ nào sai rồi học thêm . em nghĩ cách làm đó củng ko có gì sai. cứ đi theo người ta rồi mình để ý , rồi áp dụng lại cho bản thân. |
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 11:23:56 (+0700) | #10 | 247501 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
khang0001 wrote:
vậy h em phải làm thế nào để cho mysql nó chạy trong chroot ạ, anh comanle có thể chỉ giúp em được không ạ. đúng là em vẫn còn hổng nhiều kiến thức quá. anh có thể tư vấn giúp em là bây h nên đọc thêm sách gì để nâng cao thêm kiến thức không ạ. em chỉ mới học basic về LPI thôi. cảm thấy vẫn chưa đủ.
- thực ra em củng đã thử tự build rồi chroot mysql nhưng không chạy nên mới test thử bằng cách là làm giống y như hd xem thế nào, nếu như hd mà chạy được có nghĩa là mình làm sai 1 cái gì đó. sau đó mới rà lại để xem chỗ nào sai rồi học thêm . em nghĩ cách làm đó củng ko có gì sai. cứ đi theo người ta rồi mình để ý , rồi áp dụng lại cho bản thân.
Nguyên tắc căn bản của "chroot" có nghĩa là áp đặt một dịch vụ nằm trong một khu vực tách rời và riêng biệt. Khi nói đến dịch vụ thì phải nói đến tất cả mọi thứ liên quan đến dịch vụ đó, kể cả binaries, libraries, scripts, sockets, logs ...v....v.... thuộc về dịch vụ đó. Trong trường hợp mysql ở trên, em phải tìm ra hết tất cả những gì liên quan đến mysql và đặt nó trong "chroot". Sau đó, để khởi tạo dịch vụ trong chroot này, script khởi tạo cũng phải "gọi" đúng những thứ nằm trong "chroot".
Nói một cách khác, trước tiên em phải hiểu mysql hoạt động như thế nào, nó cần những gì, nó tạo ra những gì và những thứ nó tạo ra nằm ở đâu. Sau đó mới mang cả một "đống" đó vô trong một cái gọi là "jail" (chroot). Nếu em không hiểu mysql đến mức độ em tự tạo ra cái mysql.sock thì chứng tỏ em cố gắng làm một việc mà em không hề hiểu lý do tại sao.
Em không cần "đọc thêm" một cái gì hết mà chỉ cần đọc và làm cho đủ và trọn vẹn tài liệu do chính mysql cung cấp trước cái đã. Chừng nào kiện toàn kiến thức về mysql rồi hãy nghĩ đến chuyện chroot nó. Phải đi trước khi chạy. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 11:32:30 (+0700) | #11 | 247502 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
conmale wrote:
khang0001 wrote:
vậy h em phải làm thế nào để cho mysql nó chạy trong chroot ạ, anh comanle có thể chỉ giúp em được không ạ. đúng là em vẫn còn hổng nhiều kiến thức quá. anh có thể tư vấn giúp em là bây h nên đọc thêm sách gì để nâng cao thêm kiến thức không ạ. em chỉ mới học basic về LPI thôi. cảm thấy vẫn chưa đủ.
- thực ra em củng đã thử tự build rồi chroot mysql nhưng không chạy nên mới test thử bằng cách là làm giống y như hd xem thế nào, nếu như hd mà chạy được có nghĩa là mình làm sai 1 cái gì đó. sau đó mới rà lại để xem chỗ nào sai rồi học thêm . em nghĩ cách làm đó củng ko có gì sai. cứ đi theo người ta rồi mình để ý , rồi áp dụng lại cho bản thân.
Nguyên tắc căn bản của "chroot" có nghĩa là áp đặt một dịch vụ nằm trong một khu vực tách rời và riêng biệt. Khi nói đến dịch vụ thì phải nói đến tất cả mọi thứ liên quan đến dịch vụ đó, kể cả binaries, libraries, scripts, sockets, logs ...v....v.... thuộc về dịch vụ đó. Trong trường hợp mysql ở trên, em phải tìm ra hết tất cả những gì liên quan đến mysql và đặt nó trong "chroot". Sau đó, để khởi tạo dịch vụ trong chroot này, script khởi tạo cũng phải "gọi" đúng những thứ nằm trong "chroot".
Nói một cách khác, trước tiên em phải hiểu mysql hoạt động như thế nào, nó cần những gì, nó tạo ra những gì và những thứ nó tạo ra nằm ở đâu. Sau đó mới mang cả một "đống" đó vô trong một cái gọi là "jail" (chroot). Nếu em không hiểu mysql đến mức độ em tự tạo ra cái mysql.sock thì chứng tỏ em cố gắng làm một việc mà em không hề hiểu lý do tại sao.
Em không cần "đọc thêm" một cái gì hết mà chỉ cần đọc và làm cho đủ và trọn vẹn tài liệu do chính mysql cung cấp trước cái đã. Chừng nào kiện toàn kiến thức về mysql rồi hãy nghĩ đến chuyện chroot nó. Phải đi trước khi chạy.
vâng ạ, em sẽ thử đem hết tất cả các thứ liên quan đến mysql vào chroot rồi chạy thử. |
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 16:01:45 (+0700) | #12 | 247534 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
em đã thử copy tất cả các thư viện kèm theo của mysql vào thư mục /chroot/mysql để chạy thử thì kết quả như sau
Code:
[root@dhcppc7 /]# chroot /chroot/mysql
bash-3.2# /usr/local/mysql/bin/mysqld_safe &
[1] 4714
bash-3.2# chown: `mysql': invalid user
Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/dhcppc7.pid
110921 09:57:19 mysqld ended
nó báo lỗi là ko thấy user mysql. em đã kiểm tra kĩ trong file passwd và group thì có user mysql rồi. không hiểu là vì sao ko thấy mysql
em thử bằng lệnh chroot để tạo ra 1 nhà tù để chạy thử mysql, copy các file như /bin/bash, /bin/sh , các command liên quan, thư viên liên quan để chạy thử xem thế nào.
em chắc là đã copy hết tất cả những gì liên quan đến mysql rồi.
anh comanle giúp em với |
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 16:45:36 (+0700) | #13 | 247535 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
khang0001 wrote:
em đã thử copy tất cả các thư viện kèm theo của mysql vào thư mục /chroot/mysql để chạy thử thì kết quả như sau
Code:
[root@dhcppc7 /]# chroot /chroot/mysql
bash-3.2# /usr/local/mysql/bin/mysqld_safe &
[1] 4714
bash-3.2# chown: `mysql': invalid user
Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/dhcppc7.pid
110921 09:57:19 mysqld ended
nó báo lỗi là ko thấy user mysql. em đã kiểm tra kĩ trong file passwd và group thì có user mysql rồi. không hiểu là vì sao ko thấy mysql
em thử bằng lệnh chroot để tạo ra 1 nhà tù để chạy thử mysql, copy các file như /bin/bash, /bin/sh , các command liên quan, thư viên liên quan để chạy thử xem thế nào.
em chắc là đã copy hết tất cả những gì liên quan đến mysql rồi.
anh comanle giúp em với
mysql nằm trong /chroot/mysql mà sao lại start mysql từ /usr/local/mysql/bin/mysqld_safe là sao? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
21/09/2011 16:52:50 (+0700) | #14 | 247537 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
em làm theo bài nầy
Code:
/hvaonline/posts/list/0/19738.html#119195
ý của em là tạo 1 môi trường nhà tù là thư mục /chroot/mysql . lấy đó là thư mục gốc của nhà tù, copy các file như /bin/bash, /bin/sh, các thư viện có liên quan đến mysql, các command cần thiết để chạy và các thư viện liên quan đến các commnd đó.
khi đó có 1 môi trường nhà tù rồi, thì chạy mysql trong đó. nên /usr/local/mysql/bin/mysqld_safe là lúc đó em đã chuyển thư mục gốc đến /chroot/mysql rồi. dấu bash-3.2# là bằng chứng em đã chuyển thư mục gốc thành công, bây h chỉ còn chạy mysql trong cái nhà tù đó nữa là dc. em làm đúng như nguyên tắc có bảng của chroot. nhưng bị 1 vấn đề là không nhận ra các user. em đã thử copy các file như passwd, group , rồi chạy thử
chown root:root /var
thì kết quả là vẫn là ko nhận ra đc user. em ko biết là mình bi mắt lỗi gì nữa, anh comanle chỉ giúp em
|
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
22/09/2011 03:11:38 (+0700) | #15 | 247548 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Hèm... tẩu hoả rồi
Em trình bày lại chính xác từng bước từ đầu đến cuối em đã làm những gì coi? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
22/09/2011 08:17:50 (+0700) | #16 | 247557 |
khang0001
Member
|
0 |
|
|
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
|
|
Đầu tiên em cài đặt Mysql với câu lệnh
Code:
groupadd mysql
useradd -g mysql mysql
./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-unix-socket-path=/tmp/mysql.sock --with-mysqld-ldflags=-all-static --without-innodb
make
make install
strip /usr/local/mysql/libexec/mysqld
scripts/mysql_install_db
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
đến đây thì mysql khởi động được, xem như cài đặt mysql hoàn tất
tiếp đến cài đặt chrootuid
Code:
mkdir -p /chroot/mysql/dev
mkdir -p /chroot/mysql/etc
mkdir -p /chroot/mysql/tmp
mkdir -p /chroot/mysql/var/tmp
chown -R root:sys /chroot/mysql
chmod -R 755 /chroot/mysql
chmod 1777 /chroot/mysql/tmp
cp /etc/hosts /chroot/mysql/etc/
cp /etc/host.conf /chroot/mysql/etc/
cp /etc/resolv.conf /chroot/mysql/etc/
grep mysql /etc/group > /chroot/mysql/etc/group
grep mysql /etc/passwd > /chroot/mysql/etc/passwd
mknod /chroot/mysql/dev/null c 2 2
chown root:sys /chroot/mysql/dev/null
chmod 666 /chroot/mysql/dev/null
copy tất cả thư mục của mysql vừa cài đặt sang thư mục vừa chroot
Code:
mkdir -p /chroot/mysql/usr/local/mysql/
cp -R /usr/local/mysql/ /chroot/mysql/usr/local/mysql/
chown -R mysql:mysql /chroot/mysql/usr/local/mysql/
sau đó chạy chrootuid thì vẫn không được
Code:
chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &
như kết quả của post thứ nhất , không thể chạy được
sau đó em mới tìm hiểu thêm thì biết. lệch chrootuid là kết hợp của 2 lệnh chroot và su. nên em suy luận nếu vậy thì làm trước lệnh chroot . nếu thành công thì chrootuid chắc củng sẽ thành công
nên em đánh lệnh
Code:
thì nó báo lỗi thiếu thư viện và /bin/bash
nên em copy tất cả các thư viện và /bin/bash, /bin/sh
Code:
mkdir -p /chroot/mysql/bin
mkdir -p /chroot/mysql/lib
mkdir -p /chroot/mysql/usr/lib/
cp /lib/libdl.so.2 /lib/libtermcap.so.2 /lib/libc.so.6 /lib/ld-linux.so.2 \
/lib/librt.so.1 /lib/libssl.so.6 /lib/libcrypto.so.6 /lib/libpthread.so.0 \
/lib/libcrypt.so.1 /lib/libnsl.so.1/lib/libm.so.6 /lib/libgcc_s.so.1 \
/lib/libcom_err.so.2 /lib/libresolv.so.2 \
/lib/libkeyutils.so.1 /lib/libselinux.so.1 /lib/libsepol.so.1 /chroot/mysql/lib/
cp /usr/lib/libkrb5.so.3 /usr/lib/libz.so.1 /usr/lib/libstdc++.so.6 /usr/lib/libgssapi_krb5.so.2 \
/usr/lib/libk5crypto.so.3 /usr/lib/libkrb5support.so.0 /chroot/mysql/usr/lib/
sau đó đánh lệnh
Code:
thì đc bash-3.2#
khởi tạo thành công môi trường chroot rồi. bây h chỉ còn copy tất cả những gì cần thiết để cho mysql chạy là xong
em đánh lệnh
Code:
/usr/local/mysql/bin/mysqld_safe &
thì nó báo
Code:
/usr/local/mysql/bin/mysqld_safe: line 75: sed: command not found
/usr/local/mysql/bin/mysqld_safe: line 74: sed: command not found
/usr/local/mysql/bin/mysqld_safe: line 223: dirname: command not found
/usr/local/mysql/bin/mysqld_safe: line 255: /bin/hostname: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 262: /bin/hostname: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 285: /dev/null: No such device or address
/usr/local/mysql/bin/mysqld_safe: line 316: /dev/null: No such device or address
/usr/local/mysql/bin/mysqld_safe: line 333: touch: command not found
/usr/local/mysql/bin/mysqld_safe: line 333: chown: command not found
Starting mysqld daemon with databases from /usr/local/mysql/var
/usr/local/mysql/bin/mysqld_safe: line 394: date: command not found
/usr/local/mysql/bin/mysqld_safe: line 397: rm: command not found
STOPPING server from pid file /mysql/var/.pid
/usr/local/mysql/bin/mysqld_safe: line 442: date: command not found
/usr/local/mysql/bin/mysqld_safe: line 442: tee: command not found
/usr/local/mysql/bin/mysqld_safe: line 443: tee: command not found
có nghĩa là nó thiếu các command cần thiết để chạy mysql
nên em đã copy tất cả các command đó vào thư mục chroot
như là sed, dirname, /bin/hostname, touch,chowns,date,rm,tee
riêng cái dev/null em đã tạo trước đó rồi mà vẫn ko dc nó chấp nhận nên em đã xóa luôn và copy từ thư mục root vào luôn
sau khi làm xong hết thì đánh lệnh
Code:
chroot /chroot/mysql/
/usr/local/mysql/bin/mysqld_safe &
thì nó báo
Code:
chown: `mysql': invalid user
Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/dhcppc7.pid
110922 02:24:39 mysqld ended
em củng không hiểu vì sao nó ko thấy user mysql nữa. trong file passwd và group em có duy nhất 1 mình user mysql thôi. em mới test thử bằng cách, copy cả 2 file gốc passwd và group vào thư mục chroot rồi test thử với user root xem thế nào
Code:
chown root:root /var
chown 'root': invalid user
lệnh nầy đánh khi đã vào thư mục chroot
em củng không hiểu mình đã làm sai gì nữa. anh comanle chỉ giúp em |
|
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em |
|
|
|
[Question] Chroot mysql nhưng vẫn không chịu chạy |
22/09/2011 08:40:06 (+0700) | #17 | 247561 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Thay vì:
chroot /chroot/mysql/ /usr/local/mysql/bin/mysqld_safe &
Thử:
chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &
coi sao? |
|
What bringing us together is stronger than what pulling us apart. |
|
|