Senin, 29 Mei 2017

0 Pengertian Fake Root atau Chroot

Date: Senin, 29 Mei 2017 Mei 29, 2017
Category:
Author: Mr Takur
Share:
Responds: 0 Comment

Hello All

   Fake Root atau Chroot adalah fasilitas yang disediakan di banyak sistem operasi Unix untuk membuat filesystem root “virtual” bagi program, misalnya di bawah /home/steven/root, sehingga program menganggap path tersebut adalah / dan tidak bisa melihat path di atasnya (/home/steven maupun /home maupun / asli). Chroot banyak bermanfaat untuk memenjarakan program sehingga tidak bisa menyentuh file-file di luar direktori yang sudah kita tetapkan sebagai penjaranya.

   Tip ini cukup berhubungan dengan tip 2 (tiap user memperoleh mysqld masing-masing). Di lingkungan virtual server pun chroot sering dilakukan terhadap tiap-tiap daemon agar masing-masing tidak dapat melihat file milik daemon lain.

   Chroot saat ini harus dilakukan sebagai root karena merupakan operasi privileged. Menyambung contoh di tip 2, berikut ini cara menjalankan mysqld milik user steven dan memenjarakannya di /home/steven/mysql. mysqld memiliki opsi --chroot sehingga kita tidak perlu mengkopi /usr/sbin/mysqld-nya itu sendiri, namun terakhir saya coba masih bermasalah, sehingga kita akan melakukan chroot menggunakan /usr/sbin/chroot. Contoh ini untuk RedHat Linux (saya memakai versi 7.2) dan distribusi RPM binary dari MySQL AB (saya memakai 3.23.51).

$ chdir /home/steven
$ mkdir -p fakeroot/{var/lib,etc,tmp,lib,usr/sbin,usr/share}
$ mv mysql fakeroot/var/lib/ # direktori data yg sudah dibuat di tip 2
$ echo -e "root:*:0:0:::\nnobody:*:99:99:::\nsteven:*:500:500:::" \
> fakeroot/etc/passwd
$ echo -e "root::0:\nsteven::500:" > fakeroot/etc/group
$ cp -a /lib/{ld-*,libc.so*,libc-*.so,libnsl*,libnss_files*,libtermcap*} \
fakeroot/lib/
$ cp -a /usr/sbin/mysqld fakeroot/usr/sbin/
$ cp -a /usr/share/mysql fakeroot/usr/share/

# /usr/sbin/chroot /home/steven/fakeroot /usr/sbin/mysqld \
--user=steven \
--datadir=/var/lib/mysql \
--port=3366 \
--socket=/var/lib/mysql/mysql.sock

   Untuk instalasi seperti di atas, dibutuhkan overhead ruang disk sebesar sekitar 12MB untuk mengkopi library Linux dan file-file lain yang diperlukan ke bawah /home/steven/fakeroot (karena jika tidak, setelah dilakukan chroot maka mysqld tidak akan dapat mencari library yang dibutuhkan). Kita juga memerlukan /etc/passwd dan /etc/group “dummy”. Ganti UID dan GID 500 sesuai UID dan GID user yang akan menjalankan mysqld. Setelah semua file-file siap, kita memanggil mysqld. Perhatikan bahwa opsi-opsi path di --datadir dan --socket adalah relatif terhadap fakeroot. Program-program yang berada di bawah chroot yang sama akan melihat soket dan direktori data MySQL milik steven ini di /var/lib/mysql, tapi sebetulnya—seperti yang akan dilihat program-program lain yang berada di luar chroot—lokasi asli ada di /home/steven/fakeroot/var/lib/mysql.

   Chroot berguna terutama jika kalian tidak mempercayai MySQL versi development atau beta (mis: versi 4.0.2 saat ini). Chroot juga bermanfaat dalam menutup kemungkinan perintah SQL LOAD DATA INFILE dan SELECT INTO OUTFILE mengintip dan merusak file-file yang tidak diinginkan. Chroot juga perlu kalian pertimbangkan bila sebuah server memuat beberapa user yang benar-benar tidak saling mempercayai satu sama lain. Dalam kenyataan sehari-hari, saya jarang menggunakan chroot.

   Itu dia pengertian Dari Chroot atau Fake Root.

[ Semoga Bermanfaat ]
[ Don't Forget For Share ]
[  ]


Artikel Terkait :



Posting Komentar