150
1 บทที่ 1 โครงสร้าง ฮาร์ดดิสก์และการเรียกชื่อฮาร์ดดิสก์ ฮาร์ดดิสก์ประกอบด้วย 1. MBR (Master Boot Record) 2. Primary Partition 3. Extended Partition 4. Logical Partition MBR MBR ย่อมาจากคำาว่า Master Boot Record ซึ่ง MBR จะอยู่ที่เซกเตอร์แรกสุดของฮาร์ดิสก์ MBR จะประกอบด้วยสองส่วน คือ IPL (Initial Program Loader) ขนาด 446 byte เป็นพื้นที่ที่โปรแกรมบูทโหลดเดอร์ของลีนุกซ์จะไปติดตั้งอยู่ ใช้ในการบูทของลีนุกซ์ และ Partition table ขนาด 66 byte ดังรูปที่ 1-1 รูปที่ 1-1 รูปแสดงส่วนประกอบของ MBR การสร้าง partition ให้กับฮาร์ดดิสก์ มี 3 แบบ คือ Primary, Extended และ Logical ในการสร้างพาร์ติชันฮาร์ดดิสก์ ถ้าเราสร้างทุกพาร์ติชันให้เป็น Primary ทั้งหมด จะสร้างได้เพียง 4 พาร์ติชันเท่านั้น ถ้าต้องการมากกว่านั้นต้องใช้ 1 พาร์ติชันเป็น Extended แล้ว แบ่งย่อย Extended เป็น Logical ตัวอย่างดังภาพ ที่ 1-2 และ 1-3 ตัวอย่างการแบ่งพาร์ติชัน ` รูปที่ 1-2 ตัวอย่างการแบ่ง Partition แบบที่ 1 ใช้พาร์ติชันที่ 4 เป็น Extended รูปที่ 1-3 ตัวอย่างการแบ่ง Partition แบบ ที่ 2 ใช้พาร์ติชันที่ 2 เป็น Extended Initial Program Loader (IPL) 466 Byte Partition table 66 Byte

หนังสือ Linux Advance ภาษาไทย

  • Upload
    know2pro

  • View
    1.606

  • Download
    15

Embed Size (px)

DESCRIPTION

หนังสือ Linux Advance ภาษาไทยละเอียดมากๆknow2pro.com

Citation preview

Page 1: หนังสือ Linux Advance ภาษาไทย

1

บทท 1โครงสราง ฮารดดสกและการเรยกชอฮารดดสก

ฮารดดสกประกอบดวย1. MBR (Master Boot Record)2. Primary Partition3. Extended Partition4. Logical Partition

MBRMBR ยอมาจากคำาวา Master Boot Record ซง MBR จะอยทเซกเตอรแรกสดของฮารดสก MBR

จะประกอบดวยสองสวน คอ IPL (Initial Program Loader) ขนาด 446 byte เปนพนททโปรแกรมบทโหลดเดอรของลนกซจะไปตดตงอย ใชในการบทของลนกซ และ Partition table ขนาด 66 byte ดงรปท 1-1

รปท 1-1 รปแสดงสวนประกอบของ MBR

การสราง partition ใหกบฮารดดสก ม 3 แบบ คอ Primary, Extended และ Logical ในการสรางพารตชนฮารดดสก ถาเราสรางทกพารตชนใหเปน Primary ทงหมด จะสรางไดเพยง 4 พารตชนเทานน ถาตองการมากกวานนตองใช 1 พารตชนเปน Extended แลว แบงยอย Extended เปน Logical ตวอยางดงภาพ ท 1-2 และ 1-3ตวอยางการแบงพารตชน`

รปท 1-2 ตวอยางการแบง Partition แบบท 1 ใชพารตชนท 4 เปน Extended

รปท 1-3 ตวอยางการแบง Partition แบบ ท 2 ใชพารตชนท 2 เปน Extended

Initial Program Loader (IPL) 466 Byte

Partition table

66 Byte

Page 2: หนังสือ Linux Advance ภาษาไทย

2

ลนกซเคอรเนลมขอจำากดในการจดการพารตชนทเปนฮารดดสก IDE ได 63 พารตชน ฮารดดสก SCSI จะได 15 พารตชน พารตชนแรกของ Logical partition จะเปน Partition ท 5 เสมอ

การเรยกชอฮารดดสกฮารดดสก IDE มการเชอมตอกบสาย IDE ตรงตำาแหนงตางๆ จะมชอเรยกดงนPrimary Master เรยกวา /dev/hda Primary Slave เรยกวา /dev/hdbSecondary Master เรยกวา /dev/hdcSecondary Slave เรยกวา /dev/hddลำาดบทของ พารตชนของฮารดดลำาดบทเทาไหรกจะเรยก /dev/hda1, /dev/hda2 ..., /dev/hdb1,

/dev/hdb2..., /dev/hdc1, /dev/hdc2...

ฮารดดสก SCSI จะเรยกชอตาม SCSI IDSCSI ID 0 เรยกวา /dev/sdaSCSI ID 1 เรยกวา /dev/sdbSCSI ID 2 เรยกวา /dev/sdcSCSI ID 3 เรยกวา /dev/sddSCSI ID.. เรยกวา /dev/sd...เรอยไปตามจำานวนฮารดดสกทสามารถใสไดของ SCSI ลำาดบทของพารตชนกเชนเดยวกนกบฮารดดสกแบบ IDE เชน /dev/sda1, /dev/sda2..., /dev/sdb1,

/dev/sdb2..., /dev/sdc1, /dev/sdc2... สวน ฮารดดสก SATA กจะเรยกชอ partition เหมอนกบฮารดดสก SCSIเมอเรารจกการเรยกชอฮารดดสกแลวเรากพรอมทจะตดตงลนกซแลว

รปท 1-4 แสดงฮารดดสก แบบ IDE , SCSI และ SATA ตามลำาดบ

Page 3: หนังสือ Linux Advance ภาษาไทย

3

บทท 2วธการทจะตดตงลนกซและหลกการตดตงลนกซ

ตดตงลนกซไดอยางไรบางวธการตดตงลนกซทกคายคอการตดตงดวยแผน CD หรอ DVD สำาหรบการตดตงวธการอนกสามารถทำาได

ลนกซ Red Hat มวธการตดตงดงน1. CD / DVD เปนวธทงาย และสะดวก ไดรบความนยมมากทสด2. NFS เปนการตดตงผาน NFS Network file system ซงเปนการแชรไฟลของลนกซ

วธนเหมาะสำาหรบการตดตงเพอการอบรมลนกซ สามารถตดตงไดพรอมกนหลายๆ เครอง จะเรวกวาตดตงจาก CD เนองจากไมตองคอยเปลยนแผน

3. HTTP ตดตงผาน web เซรฟเวอร4. FTP ตดตงผาน FTP เซรฟเวอร5. Hard Disk ตดตงผานฮารดดสก อกลกหรออกพารตชนหนง6. Kickstart ตดตงโดยใชไฟล kickstart เหมาะสำาหรบการตดตงลนกซพรอมกนจำานวนมาก

โดยทเครองสเปคเดยวกน และตดตงเหมอนกนหมดไมวาจะเปนขนาด partition หรอจำานวน package

หลกการตดตง ลนกซการตดตงลนกซ มสวนสำาคญตรงขนตอนแบงพารตชน เพราะเราตองรวาเราจะตดตงลนกซ

เพอใชงานอะไร ในการตดตงลนกซ พารตชนทจำาเปนไดแก / (อานวา รท), /boot, swap แตในการนำาลนกซ เซรฟเวอร ไปใชงานจรงนนการแบงพารตชนเพยงเทาน ไมสะดวกในการนำาไปใชงาน จะตองมการแบงพารตชน อนๆ ออกมาดวย เชน

ตองการทำา mail เซรฟเวอร/boot พนทเกบ Kernel และไฟลทเกยวของกบการบท/ พนทเกบไฟลซสเตม/home พนทใชงานของ user/var/spool/mail พนทเกบ mail/tmp พนทเกบไฟลชวคราวswap พนททใชเปนหนวยความจำาสำารอง เวลา RAM ไมพอ

ตองการทำา PostgreSQL Database เซรฟเวอร/boot พนทเกบ Kernel และไฟลทเกยวของกบการบท/ พนทเกบไฟลซสเตม/usr/local/pgsql พนทเกบขอมลของ PostgreSQL/backup พนทไวสำารองขอมลของ PostgreSQL/tmp พนทเกบไฟลชวคราวswap พนททใชเปนหนวยความจำาสำารอง เวลา RAM ไมพอ

Page 4: หนังสือ Linux Advance ภาษาไทย

4

ขนาด partiton/boot 100 MB/ 6-8 GB/tmp 256 MBswap 2 เทาของ RAM แตไมเกน 2 GB สวนพารตชนอนๆ แบงตามขนาดของฮารดดสก และความตองการใชงานพารตชน /tmp เปนพารตชนทแยกออกมาเพอความปลอดภยของเซรฟเวอรถาพารตชน /

ขอมลเตมกจะไมมผลกระทบกบระบบ

พารตชนทแยกออกมาไดและไมไดจาก / ของการตดตงลนกซพารตชนทไมสามารถแยกออกจาก / (รทไดเรกทอร) หรอแยกจากไฟลซสเตมได คอ /etc, /lib, /bin, /sbin,

/devพารตชนทสามารถแยกออกมาได /tmp, /usr, /usr/local, /home, /var, /opt

ทำาไมตองแยกหรอแบงพารตชนออกมาเพอความยดหยนในการใชงาน สามารถแกปญหาไดงายเมอฮารดดสกเตม สามารถทำาโควตาได

ถาเราไมแบง พารตชนแยกออกมาจะไมสามารถทำาโควตาได นอกจากนนยงสะดวกในการสำารองขอมล

พารตชน /bootพารตชน /boot ตองเปนพารตชนแรกของฮารดดสก

Page 5: หนังสือ Linux Advance ภาษาไทย

5

บทท 3กระบวนการบทของลนกซ

รปท 3-1 รปแสดงกระบวนการบทของลนกซ

หลงจากทเราตดตงลนกซเสรจ บทเครองใหม หรอเปดสวทช หลงจากทเครองคอมพวเตอรตรวจสอบตวเองแลวคนหาอปกรณทใชบท ถาตรวเจออปกรณทใชบทเปนฮารดดสกกจะไปทำางานตอท MBR ซง GRUB ฝงตวอยในสวน IPL ของ MBR มาทำาความเขาใจเกยวกบโปรแกรม Boot Loader ทชอ GRUB กนกอนครบ

Page 6: หนังสือ Linux Advance ภาษาไทย

6

GRUB (Grand Unified Bootloader)GRUB เปนโปรแกรมทจดการเกยวการบทของลนกซ ในลนกซรนเกาจะใช โปรแกรม LILO

ซงมขอจำากดและขอดอยกวา GRUB ปจจบนทงลนกซทกคายรวมถง Solaris กหนมาใช GRUB เปนบทโหลดเดอรกนทงนน

ขอเดนของ GRUB• สามารถใชสำาสงแบบ Command-line ได• ใชไดกบไฟลซสเตมเหลาน ext2/ext3, ReiserFS, JFS, FAT, minix, FFS • มระบบปองกนดวยรหสผานทเขาระหสแบบ MD5• เปลยนคาใน grub.conf มผลทนท• ถา MBR ใน /dev/hda ถกทำาลาย ตดตงใหมได /sbin/grub-install /dev/hda

ตวอยาง ไฟล /boot/grub/grub.conf GRUB version ใหม ไฟล config จะเปลยนเปน /boot/grub/menu.lst

เราสามารถเปลยนคาตางในไฟล config น

default=0 timeout=10splashimage=(hd0,1)/grub/splash.xpm.gz

#ชดคำำสง หรอ เมน ท 0title Linux TLE (2.4.22-6_1.2163.nptl_03tle)root (hd0,1)kernel /vmlinuz-2.4.22-6_1.2163.nptl_03tle ro root=/dev/hda3 hdc=ide-scsi rhgbinitrd /initrd-2.4.22-6_1.2163.nptl_03tle.img

#ชดคำำสง หรอ เมน ท 1title Windowsrootnoverify (hd0,0)chainloader +1

ถา default=0 บทเขา ลนกซ ถา default=1 บทเขา Windowstimeout=10 แสดงหนาจอเมนบทอย 10 วนาท แลวจงบทเขา default

หลงจากทผานโปรแกรม Boot loader โปรแกรม Boot loader กจะสงการทำางานตอมาท partition /boot ซงในพารตชนนจะเกบ kernel ในลกษณะของไฟลบบอด kernel จะขยายตวมนเอง ตรวจสอบฮารแวรและตดตงไดรเวอร หลงจากนนจะเมาท root file system แบบ read only แลวจงเขาสขนตอน init

Page 7: หนังสือ Linux Advance ภาษาไทย

7

กระบวนการ initในกระบวนการบท ขนตอนการ init คอการรนคำาสง /sbin/init นนเอง เรมจากอานขอมลจากไฟล

/etc/inittab แลวไปทำางานตอท /etc/rc.d/rc.sysinit

ไฟล /etc/inittabในไฟล /etc/inittab จะมรายละเอยดบางสวนทจะตองมาทำาความเขาใจกนดงน Red Hat ลนกซจะม runlevel

อย 6 runlevel ใชงานอยจรงๆ 5 runlevel ตามรายละเอยดดานลางน 1 # Default runlevel. The runlevels used by RHS are:2 # 0 - halt (Do NOT set initdefault to this)3 # 1 - Single user mode4 # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)5 # 3 - Full multiuser mode6 # 4 - unused7 # 5 - X118 # 6 - reboot (Do NOT set initdefault to this)9 #10 id:3:initdefault:1112 # System initialization.13 si::sysinit:/etc/rc.d/rc.sysinit

เลข 3 ในบรรทดท 10 เปนการบอกวา บทใหเขาส runlevel 3 เปนคาปกต ถาหากเราตองการใหเขา runlevel 5 โดยใหบทเขากราฟกโหมด หรอ X11 กทำาไดโดยการเปลยน เลข 3 เปนเลข 5id:5:initdefault:ถาคา initdefault มคาเปน 3 ในกระบวนการบทหลงจากทรน script /etc/rc.d/rc.sysinit แลวกจะไปทำางานตอท/etc/rc.d/rc3.d/ถาคา initdefault มคาเปน 5 ในกระบวนการบทหหลงจากทรน script /etc/rc.d/rc.sysinit แลวกจะไปทำางานตอท/etc/rc.d/rc5.d/

ซงใน directory เหลานจะเปนทเกบลงคไฟล start script (ลงคมาจาก /etc/init.d/) ของ service ตางๆ ซงเปนตวบอกวาในการบทขนมาจะให start service นนๆ หรอไม หลงจากท start service เรยบรอยแลวกจะมาอานไฟล /etc/rc.d/rc.local ซงเปนไฟลทเกบคำาสงทใช start service สำาหรบโปรแกรมทไมม start script ใน /etc/init.dสดทายกเขาสกระบวนการ Login ถาเปน Text mode กรนโปรแกรม getty ถาเปน Graphic mode กรน xdm, gdm,

Page 8: หนังสือ Linux Advance ภาษาไทย

8

kdm ให Login ขนอยกบวาใช Window Managers ตวไหนไฟล /etc/rc.d/rc.sysinit

ไฟล rc.sysinit การรนไฟลนจะเปนการทำางานของระบบ เชน set kernel parameter, set เวลา, โหลด keymaps , ใชงาน swap partition, hostname, ตรวจเชค และเมาทพารตชนอนๆ ฯลฯ ซงจะเปนทำางานเกยวของกบระบบทงหมด

การ Loginการ Login แบบ กราฟกโหมด (runlevel 5)

รปท 3-3 แสดงการ Login แบบกราฟก

การ Login แบบ Text Mode (runlevel 3)Red Hat Enterprise Linux AS release 4 (Nahant)Kernel 2.6.9­5.EL on an i686

training1 Login: rootPassword:Last login: Sun Jul 16 04:24:10 from 192.168.1.99You have new mail.[root@training1~]#

Page 9: หนังสือ Linux Advance ภาษาไทย

9

Login เขามาแลวจะรบทหรอปดเครองอยางไรบนกราฟกโหมดคงไมตองพดถงนะครบเพราะเหนกนอยแลววาจะรบทหรอจะปดเครอง สำาหรบบน text

mode มาดคำาสงทใชในการรบท และปดเครองกนนะครบshutdown -h now ปดเครองทนทshutdown -r now รบทเครองทนทreboot รบทเครองinit 6 รบทเครองinit 0 ปดเครองpoweroff ปดเครองhalt ปดเครองเลอกใชกนตามสะดวกนะครบอยาปดเครองโดยใชนวปดสวทชเลย อนตรายตอขอมลขอใหปดตามขนตอน

ไฟลทเกยวของในบทน/boot/grub/menu.lst หรอ /boot/grub/grub.conf/etc/inittab/etc/rc.d/rc.sysinit/etc/rc.d/rc.local

คำาสงทเกยวของในบทนinit rebootshutdownpoweroffhalt

Page 10: หนังสือ Linux Advance ภาษาไทย

10

บทท 4 การเปดปด Service

service บนลนกซ ม 2 ประเภท ไดแก stand alone service และ xinetd control

stand alone service เปน service ทอยไดดวยตวเองลกษณะสำาคญของ stand alone service ไดแก 1. ทำางานตอนบท 2. Service เปดอยตลอดเวลา3. ไฟล start script เกบอยท /etc/init.dการใชคำาสงสำาหรบการ start service ตางๆ ไมวาจะเปนลนกซ Red Hat หรอ Fedora จะใชคำาสง service

เชน service ชอ service {start|stop|restart|reload|status} เชน service httpd start สำาหรบลนกซทวไปจะใชคำาสง /etc/init.d/ชอ service {start|stop|restart|force-reload} เชน /etc/init.d/httpd start สำาหรบคำาสงน บนลนกซตระกล Red Hat กสามารถ ใชคำาสงนไดเชนกน

xinetd control เปน service ทถกควบคมดวยโปรแกรม xinetd ลกษณะสำาคญของ xinetd control service ไดแก1. service ถกความคมโดยโปรแกรม xinetd 2. service จะทำางานหรอใหบรการเมอมการรองขอ3. ไฟล start script เกบอยท /etc/xinit.dสำาหรบการ start service บน Red Hat จะใชคำาสง chkconfig ชอ service on เชน chkconfig pop3 on

หรอจะแกไขไฟล start script โดยตรงเชน pop3{

disable = yes socket_type = stream wait = no

user = root server = /usr/sbin/ipop3d log_on_success + = HOST DURATION

log_on_failure + = HOST}

ถาเราตองการเปด service ของ pop3 เราใหแกไขบรรทด disable = yes ใหเปน disable = no service อนๆ กเชนกน

Page 11: หนังสือ Linux Advance ภาษาไทย

11

เครองมอทชวยในการเปดปด service ตอนบทลนกซตระกล Red Hat จะมเครองมอชวยให service ตางๆทำางานตงแตตอนบท ดงน1. chkconfig

รปท 4-1 แสดงการใชคำาสง chkconfig

chkconfig เปนคำาสงแบบ command line การใชงานงาย chkconfig –list แสดง service ทงหมดchkconfig –add เพม service เขาไปในระบบchkconfig ชอ service on | off เปด-ปด service

2. ntsysv

รปท 4-2 แสดงโปรแกรม ntsysv

Page 12: หนังสือ Linux Advance ภาษาไทย

12

ntsysv เปนโปรแกรมแบบ Text User Interface หากตองการให service ทตองการทำางานตงแตตอนบทกให กด spacebar ใหมเครองหมาย * หากไมตองการให service นนๆ ทำางานตอนบท ก กด spacebar อกครงหนงใหเครองหมาย * หายไป

3. serviceconf / redhat-config-service / system-config-service

รปท 4-3 แสดงโปรแกรม serviceconf / system-config-service

serviceconf / redhat-system-config / system-config-service เปนโปรแกรมแบบ GUI สามารถรนไดบนกราฟกโหมดเทานน

ขอเสยของ ntsysv และ serviceconf คอ มนจะมผลตอการเปดปด service ตอนบทเฉพาะรน Level ทเราทำางานอยเทานนเชน เรยกใชงานโปแกรมใน runlevel 5 แลวบทเครองเขามา runlevel 3 service ทเปดหรอปดเอาไวกจะไมมผลเมอบทเขามาใน runlevel 3

ไดเรกทอรทเกยวของ/etc/init.d/etc/xinet.d

ไฟลทเกยวของ/etc/init.c/*/etc/xinet.d/*

คำาสงทเกยวของservicechkconfig

Page 13: หนังสือ Linux Advance ภาษาไทย

13

บทท 5โครงสรางของไดเรกทอรของลนกซ

ผใชงานวนโดวจะมความคนเคยกบลกลกษณะโครงสรางไดเรกทอร ทม Driver C:\ , D:\ และโฟลเดอร แตสำาหรบลนกซนน จะไมมไดรฟแตจะม ไดเรกทอรเหนอสดคอ / (รทไดเรกทอร) หลงจากทเราตดตงลนกซเสรจ กจะมไดเรกทอรมากมาย ซงเหมอนกบตอนทเราตดตงวนโดวเสรจเราจะเหนโฟลเดอร Windows, Programs File ฯลฯ

มมมองแบบไดเรกทอร

รปท 5-1 แสดงไดเรกทอรทงหมดของลนกซ

มมมองแบบภาพ หรอ โฟลเดอรแบบวนโดว

รปท 5-2 แสดงไดเรกทอรในมมมองแบบโฟลเดอรในวนโดว

Page 14: หนังสือ Linux Advance ภาษาไทย

14

มมมองโครงสรางแบบตนไม

รปท 5-3 แสดงโครงสรางไดเรกทอรแบบแผนภมตนไม

การเปลยนไปทำางานยงไดเรกทอรตางๆดวยคำาสง cdทเขยนเรองนมาเพราะจะเจอปญหาความไมเขาใจเกยวกบการเปลยนการทำางานไปยงไดเรกทอรตางๆ

มากสำาหรบลนกซมอใหม คอไมรวาตอง ม / หรอ ไมม มาดตอครบสงทตองจำาและทำาความเขาใจรทไดเรกทอร คอ / เปนไดเรกทอรเหนอสด เทยบกบวนโดวก Drive C:\โฮมไดเรกทอรของ user root คอ /root บานของคนชอ root เปนคนทมสทธสงสดในระบบอยาหลง

/ (รทไดเรกทอร) กบ /root (บานของคนชอ root)ไดเรกทอรทอยถดจากรทไดเรกทอร คอ /boot, /etc, /initrd, /misc, /opt, /root, /sys, /usr, /bin, /dev, /home,

/lib, /media, /mnt, /proc, /sbin, /tmp, /var การใชคำาสง cd เพอเปลยนไดเรกทอร ถาตองการเปลยนไดเรกทอรไปทำางานทตดกบ / ตองม / นำาหนา เชน

cd /boot, cd /etc , cd /usr, cd /mnt กรณทไดเรกทอร ทอยในลำาดบขนถดไปจากทเราทำางานอย ไมตองใสเครองหมาย / เชน ทำางานอยท /usr ตองการเขาไปทำางานท /usr/local/pgsql กสามารถใชคำาสง cd local/pgsql ไดเลย ขอควรจำา ถาเปลยน ไดเรกทอรไปทำางานทไดเรกทอรทไมตดกบ / และเปนไดเรกทอรถดไปกไมตองใสเครองหมาย /

Page 15: หนังสือ Linux Advance ภาษาไทย

15

ตวอยางการใชคำาสง cd เพอเปลยนการทำางานไปยงไดเรกทอรตางๆ ทำางานอยท /root เปลยนไปทำางานท /usr/local/pgsql ใชคำาสง cd /usr/local/pgsqlทำางานอยท /usr/local/pgsql เปลยนไปทำางานท /var/www ใชคำาสง cd /var/wwwทำางานอยท / เปลยนไปทำางานท /usr/local/pgsql ใชคำาสง cd usr/local/pgsql

` ทำางานอยท / เปลยนไปทำางานท /etc ใชคำาสง cd etcทำางานอยท /root เปลยนไปทำางานท /etc/httpd/ ใชคำาสง cd /etc/httpdไมสนใจวาทำางานอยทไหน ตองการเปลยนไปไปทำางาน ท /var/www/html ใชคำาสง cd /var/www/html

คำาสง pwdเปนคำาสงทแสดงชอของไดเรกทอรปจจบนทเราทำางานอยตวอยางดงรปท 5-4

รปท 5-4 แสดงการใชคำาสง pwd

คำาสง pwd จะชวยใหเรารวาเราทำางานอยทตำาแหนงไดเรกทอรไหน จะไดไมหลงไดเรกทอร

คำาสงทเกยวของในบทนcdpwd

Page 16: หนังสือ Linux Advance ภาษาไทย

16

บทท 6การใชงาน Vi

การใชงานลนกซหนไมพนทจะตองใชงาน Text Editor ตวใดตวหนง เพราะ ลนกซมความจำาเปนตองแก คอนฟกไฟล ทเปน Text ไฟล โปรแกรม Text Editor มหลายตว เชน pico, nano, mc, Vi ฯลฯ แตในทนจะพดถง Vi

เพราะเปน Text Editor ทมาคกบ Unix มานาน และไดรบความนยมมากตวหนง Vi (ออกเสยงวา "vee-eye")เปนคำาเรยกสนๆ ของ Visual editor

รปท 6-1 แสดงโปรแกรม Vi

เรมใชงาน viเราสามารถเรยกใชงาน Vi โดยพมพคำาสง vi ตามดวยชอไฟล ชอไฟลนเปนไปไดทงไฟลทมอยแลว

และชอไฟลใหม

ตวอยาง

# vi /etc/samba/smb.conf# vi newfilename.txt

vi Mode

Page 17: หนังสือ Linux Advance ภาษาไทย

17

vi ม 2 โหมด● command mode ใชสำาหรบรบคำาสง ของผใช เชน จะเขาส insert mode บนทกไฟล ออกจากโปรแกรม

ฯลฯ● insert mode ใชสำาหรบแกไขไฟล เชน พมพขอมลเพม ลบคำาเมอเราเปดโปรแกรม vi ขนมาโปรแกรมจะเขาส command mode เราจะพมพขอความลงไปไมได

จนกวาเราจะเขาส insert mode โดยการกดปม i (หรออนๆ) เมอเราทำางานใน insert mode เราสามารถแกไขขอมลในไฟลได ถาเราตองการบนทกไฟล หรอออกจากการใชงาน vi กตองกลบเขาส command mode โดยการกดปม Esc

เขาส insert mode เพอแกไขขอความa เพมขอความทอยขางหลงA เพมขอความตอทายบรรทดปจจบนi แทรกขอความทอยหนาเคอรเซอรI แทรกขอความทตนบรรทดปจจบนo เพมบรรทดวางๆใหมอกหนงบรรทด ถดจากบรรทดทเคอรเซอรอยO เพมบรรทดวางๆใหมอกหนงบรรทด เหนอจากบรรทดทเคอรเซอรอย

การบนทกไฟลและออกจากโปรแกรม (command mode)ถาทำางานอยใน insert mode เขาส command mode โดยการกด Esc แลวคอยพมพคำาสงZZ ออกจากโปรแกรมบนทกไฟล:q! ออกจากโปรแกรมไมบนทกไฟล:wq ออกจากโปรแกรมบนทกไฟล

การเลอนเคอรเซอรไปยงตำาแหนงตางๆ ใน 1 จอภาพh เลอนเคอรเซอรไปทางซาย 1 ตวอกษรj เลอนเคอรเซอรไปยงบรรทดลาง 1 บรรทดk เลอนเคอรเซอรไปยงบรรทดบน 1 บรรทดl เลอนเคอรเซอรไปทางขวา 1 ตวอกษร

เลอนเคอรเซอรทละคำา ประโยค ยอหนาw เลอนเคอรเซอรไปยงตวอกษรแรกของคำาทอยถดไปe เลอนเคอรเซอรไปยงตวอกษรสดทายของคำาทอยถดไปb เลอนเคอรเซอรไปยงตำาแหนงแรกของคำาทอยกอนหนา

Page 18: หนังสือ Linux Advance ภาษาไทย

18

การเลอนจอภาพ^F เลอนจอภาพเพอดขอมลทอยในหนาถดไป^B เลอนจอภาพเพอดขอมลทอยกอน 1 หนา^D เลอนจอภาพไปอกครงจอภาพ^U เลอนจอภาพยอนกลบไปอกครงจอภาพ^R หรอ ^L ใหแสดงจอภาพปจจบนอกครงหนง

การลบdd ลบเฉพาะบรรทดทเคอรเซอรอยdw ลบคำาตงแตตวอกษรทเคอรเซอรอยไปจนถงตวอกษรแรกของคำาตอไปde ลบคำาตงแตตวอกษรทเคอรเซอรอยไปจนถงตวอกษรสดทายของคำาปจจบนdb ลบคำาตงแตตวอกษรทอยหนาเคอรเซอรไปถงอกษรแรกของคำาปจจบนd^ ลบคำาตงแตตวอกษรทอยหนาเคอรเซอรไปจนถงตวอกษรแรกของบรรทดทไมใช spaced$ ลบคำาตงแตตวอกษรทเคอรเซอรอยไปจนถงตวสดทายของบรรทด

การโยกยายและการทำาสำาเนาym นำาขอความทตองการเกบลงใน buffer (m=จำานวนบรรทด)yy นำาขอความทงบรรทด ทเคอรเซอรอยไปเกบใน bufferp นำาขอความใน buffer มาวางหลงเคอรเซอร

การยกเลกคำาสงu undo. redo

การคนหาคำา/Test หาคำาวา Test/This is test หาวล This is test/^Test หาคำาวา Test หาคำาวา Test ทปรากฏทตนบรรทด/Test$ หาคำาวา Test หาคำาวา Test ทปรากฏททายบรรทด/^$ หาบรรทดทเปนบรรทดวางๆ

Page 19: หนังสือ Linux Advance ภาษาไทย

19

บทท 7การใชคำาสง RPM (RPM Package Manager)

โปรแกรมบนลนกซสวนใหญจะเขยนดวยภาษา C ในการตดตงตองเอา source code ของโปรแกรมมา compile ดวย 3 คำาสงหลก ./configure, make, make install ซงเปนเรองยาก และไมสะดวกสำาหรบผใชงานทวไป เพราะฉะนนลนกซแตละคาย กพยายามทจะอำานวยความสะดวกในการตดตงโปรแกรมใหกบผใชงาน กจะมวธการ และเทคโนโลยทตางๆกนไป เชน ลนกซ Debain ubuntu ใช apt-get, Red Hat ใช rpm (RPM Package Manager)

รปแบบของไฟล RPMname ชอ Packageversion เวอรชน release ปรบปรงครงทarchitecture i386, i586, athlon : Intel x86 Compatible Alpha : Digital Alpha/AXP

ia64 : IA-64 (Itanium) s300: S/390noarch architecture-independency code

ตวอยางpostgresql-7.3.2-3.i386.rpmชอ package คอ postgresqlversion คอ 7.3.2release คอ 3architecture คอ i386 setup-2.5.25-1.noarch.rpmnoarch คอ ไมขนกบสถาปตถยกรรม CPU

ตดตงและลบ package (โปรแกรม)nstall: rpm -i ตดตงUpgrade: rpm -U อพเกรดFreshen: rpm -F อพเกรดถามอย / ถาไมมไมทำาอะไรErase: rpm -e ลบOutput option: -v, -h แสดงเครองหมาย # ขณะทำางาน

Page 20: หนังสือ Linux Advance ภาษาไทย

20

rpm Queryรปแบบrpm -q what_package what_information• Package Options;

• -a • package_name • -f filename • -p package_file_name• Information Options:

• Default: package name• -i: general information • -l: file list

ตวอยางการใชคำาสง rpm queryrpm -qa ม Package อะไรตดตงอยบางrpm -qi postgresql ดขอมลของ Packagerpm -ql postgresql ดวามไฟลอะไรอยบางใน Package postgresqlrpm -qf /usr/bin/psql ไฟลนอยใน Package อะไรrpm -qlp postgresql-7.3.2-3.i386.rpm ไฟลนตดตงแลวไปมไฟลอะไรบางไปตดตงอยทไหนrpm -qip zip-2.3-16.i386.rpm ดขอมลของไฟลน

ตวอยางผลของการใชคำาสง rpm quey[root@localhost ]# rpm -ql postgresql/usr/bin/clusterdb/usr/bin/createdb/usr/bin/createlang/usr/bin/createuser/usr/bin/dropdb/usr/bin/droplang...

[root@localhost]# rpm -qi postgresqlName : postgresql Relocations: (not relocateable)Version : 7.3.2 Vendor: Red Hat, Inc.Release : 3 Build Date: อา. 16 ก.พ. 2546, 10:21:48Install Date: ส. 3 พ.ค. 2546, 06:39:59 Build Host: porky.devel.redhat.com

Page 21: หนังสือ Linux Advance ภาษาไทย

21

Group : Applications/Databases Source RPM: postgresql-7.3.2-3.src.rpmSize : 6481748 License: BSDSignature : DSA/SHA1, จ. 24 ก.พ. 2546, 12:43:22, Key ID 219180cddb42a60ePackager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>URL : http://www.postgresql.org/Summary : PostgreSQL client programs and libraries.Description :PostgreSQL is an advanced Object-Relational database management system(DBMS) that supports almost all SQL constructs, including ...

คำาสงทเกยวของในบทนrpm

Page 22: หนังสือ Linux Advance ภาษาไทย

22

บทท 8การบรหารจดการบญชรายชอผใชระบบ User / Group Accounts

อยางทไดกลาวไปแลววาลนกซมการทำางานแบบผใชงานคราวละหลายคน (multi user) การจดการบญชรายชอมความจำาเปนเพองายและสะดวกในการดแลรกษาเซฟเวอร ลนกซ Red Hat ถาเราเพม user เขาไปโดยใชคำาสง useradd ตามดวยชอ user โดยไมม option -g ระบบกจะทำาการเพมกลมใหอก 1 กลมตามชอ user นนซงเรยกวา Private Group คำาสงทเกยวของกบการจดการ User ไดแก groupadd, groupdel, useradd, userdel, usermod หากเราไมตองการ Private Group กสามารถเพมกลมเขามาเองโดยใชคำาสง groupadd

คำาสง groupadd เพมกลมใหมgroupadd option ชอ group ทตองการเพม-g gid (group id)ตวอยางgroupadd ­g 1000 manager #เพมกลมชอ manager โดยมหมายเลข gid = 1000groupadd web #เพมกลมชอ webgroupadd hr #เพมกลมชอ hrgroupadd sale #เพมกลมชอ hr

คำาสง groupdel ลบกลมออกgroupdel ชอgroupทตองการลบตวอยาง groupdel manager

คำาสง useradd เพมผใชงานใหมuseradd option user-d ระบโฮมไดเรคตอร-g ระบ group-m สรางโฮมไดเรคทอรใหดวย-c ระบชอของ user-u ระบ user id

Page 23: หนังสือ Linux Advance ภาษาไทย

23

ตวอยางหลงจากทเราเพมกลมเรยบรอยแลวเรากสามารถเพม user ไดเลยuseradd ­g manager ­c “Mr. Somchai” somchai

#เพมผใชงาน ชอ somchai อยในกลม manager มชอวา Mr. Somchaiuseradd ­g web ­c ”Miss Manee” manee

#เพมผใชงาน ชอ somchai อยในกลม manager มชอวา Mr. Somchaiuseradd ­g web ­c “Mr. Piti” piti

#เพมผใชงาน ชอ somchai อยในกลม manager มชอวา Mr. Somchaiuseradd ­g hr ­c “Miss Chuchai” chuchai

#เพมผใชงาน ชอ somchai อยในกลม manager มชอวา Mr. Somchaiuseradd ­g sale ­c “Mr. Mana” mana

#เพมผใชงาน ชอ somchai อยในกลม manager มชอวา Mr. Somchai

passwd somchai   # Set password ใหกบ user somchaipasswd manee # Set password ใหกบ user maneepasswd piti # Set password ใหกบ user pitipasswd chuchai # Set password ใหกบ user chuchaipasswd mana # Set password ใหกบ user mana

คำาสง userdel ลบผใชงานออกuserdel option userทตองการลบ-r ลบไฟลของ user ในโฮม และใน /var/spool/mail

การเปลยนแปลงขอมลของผใชงานดวย usermodusermod option user ทตองการเปลยนแปลง-c เปลยน comment หรอชอของ user-d เปลยนโฮมไดเรคทอรของ user-e ตงวนหมดอายใหกบ user-g เปลยนกลมของ user-G group1 [ ,group2,... , [groupN] เพมกลมใหกบ user ให user มกลมหลายกลมได-u uid เปลยน uid ของ user

-L ลอคไมให user เขาใชงาน-U ยกเลกการลอค

Page 24: หนังสือ Linux Advance ภาษาไทย

24

ตวอยางการจดการบญชรายชอ[root@training1 ~]# useradd ­g manager ­c "Mr. Somchai" somchai[root@training1 ~]# useradd ­g web ­c "Miss Manee" manee[root@training1 ~]# useradd ­g web ­c "Mr. Piti" piti[root@training1 ~]# useradd ­g hr ­c "Miss Chuchai" chuchai[root@training1 ~]# useradd ­g sale ­c "Mr. Mana" mana[root@training1 ~]# id pitiuid=502(piti) gid=501(web) groups=501(web)[root@training1 ~]# finger pitiLogin: piti                             Name: Mr. PitiDirectory: /home/piti                   Shell: /bin/bashNever logged in.No mail.No Plan.[root@training1 ~]# usermod ­g hr ­c “Piti”  piti[root@training1 ~]# id pitiuid=502(piti) gid=502(hr) groups=502(hr)[root@training1 ~]# finger pitiLogin: piti                             Name: PitiDirectory: /home/piti                   Shell: /bin/bashNever logged in.No mail.No Plan.[root@training1 ~]#[root@training1 ~]# passwd somchaiChanging password for user somchai.New UNIX password:Retype new UNIX password:passwd: all authentication tokens updated successfully.[root@training1 ~]# usermod ­g hr ­c “Piti Yindee” piti[root@training1 ~]# usermod ­L piti[root@training1 ~]#

คำาสงทเกยวของในบทนgroupaddgroupmodgroupdeluseraddusermoduserdelpasswdidfinger

Page 25: หนังสือ Linux Advance ภาษาไทย

25

บทท 9Permission ของไฟล และ Directory

เนองจากลนกซมระบบการทำางานแบบผใชงานคราวละหลายคน เพราะฉะนนจำาเปนตองมการจำากดสทธของการเขาถงไฟล และไดเรกทอร ในระบบไฟลของลนกซจะแบงกลมของการเขาถงไฟลออกเปน 3 กลม คอ

1. คนทเปนเจาของไฟล2. คนทอยในกลมเดยวกน3. คนทไมใชเจาของไฟล และไมไดอยกลมเดยวกน

เมอเราใชคำาสง ls -l กจะเหนรายละเอยดของไฟลและไดเรกทอร

drwxr­xr­x 3 root root    4096 2006­07­03 07:20  Desktopdrwxr­xr­x 8 root root    4096 2006­07­01 08:33  MyDownload­rw­r­­r­­ 1  root root    4529 2006­07­03 17:09  test.php

ในแตละกลมจะมการกำาหนดสทธได 3 แบบ ตวอกษร r มาจาก Read หมายถง อาน

ตวอกษร w มาจาก Write หมายถง เขยนตวอกษร x มาจาก Execute หมายถง ประมวลผล

สทธ เมอใชกบไฟล เมอใชกบไดเรคทอรread ดเนอหา ดรายชอไฟลในไดเรคทอรwriter เปลยนแปลง และแกไขเนอหาในไฟล สรางหรอลบไฟลในไดเรคทอรexecute สง execute (ประมวลผลได) เปลยนไดเรคทอร, คนหา

หรอสำาเนาจากไฟลในไดเรคทอรนน

ตวอยาง ­­­ : ไมมสทธอะไรเลย (เลขทใชคอ 0) ­­x : ประมวลผลไดอยางเดยว (เลขทใชคอ 1) r­­ : อานไดอยางเดยว (เลขทใชคอ 4) rw­ : อาน และเขยนได (เลขทใชคอ 6) r­x : อาน และประมวลผลได (เลขทใชคอ 5)

rwx : อาน เขยน และประมวลผลได (เลขทใชคอ 7)

Page 26: หนังสือ Linux Advance ภาษาไทย

26

รปท 8-1 แสดงคาของการกำาหนดสทธ

ความหมายของ rwxrwxrwx จะหนวามอกษร 9 ตว (ความจรง 10 ตว) ตวแรก ไมนบเปนตวบอกชนดของไฟล - หมายถงไฟล d หมายถง ไดเรกทอร l หมายถงลงคไฟล (ภาษาวนไดว เรยกวา shortcut)

3 ตวแรกหมายถง เจาของ3 ตวทสองหมายถง คนในกลมเดยวกน3 ตวทสามหมายถง คนอนทไมใชเจาของและไมใชคนในกลมเดยวกน

ตวอยาง­rwx­­­­­­ : เจาของเทานนทมสทธทกอยางคนในกลมและคนอนไมมสทธ (เลขทใชคอ 700)­rwxrwx­­­ : เจาของ และสมาชกกลมเดยวกนมสทธทกอยางคนอนไมมสทธ (เลขทใชคอ 770)­rw­rw­rw­ : เจาของ และสมาชกกลมเดยวกนและคนอนอานและเขยนได (เลขทใชคอ 666)­rwxr­xr­x : เจาของทำาไดหมด สวนกลมและคนอนอานและประมวลผลได (เลขทใชคอ 755)­r­­r­­r­­ : ทกคนอานไดอยางเดยว (เลขทใชคอ 444)

คำาสงทใชในการเปลนสทธของไฟลและไดเรกทอรchmod เปลยนโหมด chown เปลยนเจาของchgrp เปลยนกลม

Page 27: หนังสือ Linux Advance ภาษาไทย

27

ตวอยาง การใชงานคำาสง chmod

root@sothorn:~# touch test.htmlroot@sothorn:~# ls ­l test.html­rw­r­­r­­ 1 root root 0 2006­07­12 11:03 test.htmlroot@sothorn:~# chmod 755 test.phproot@sothorn:~# ls ­l test.html­rwxr­xr­x 1 root root 0 2006­07­12 11:03 test.htmlroot@sothorn:~# chmod 666 test.htmlroot@sothorn:~# ls ­l test.html­rw­rw­rw­ 1 root root 0 2006­07­12 11:03 test.htmlroot@sothorn:~# ls ­l test.html­rw­rw­rw­ 1 root root 0 2006­07­12 11:03 test.htmlroot@sothorn:~# chmod 700 test.htmlroot@sothorn:~# ls ­l test.html­rwx­­­­­­ 1 root root 0 2006­07­12 11:03 test.htmlroot@sothorn:~#

ปญหาทเกดขนทเราทำางานกบสทธทไมถกตองเชน ไบนารไฟล จะไมสามารถ execute ได

root@sothorn:/usr/local/firefox# chmod 660 firefoxroot@sothorn:/usr/local/firefox# ./firefoxbash: ./firefox: Permission deniedroot@sothorn:/usr/local/firefox# chmod 755 firefoxroot@sothorn:/usr/local/firefox# ./firefox

ไฟล .html ไมสามารถ execute ได เมอเรยกผาน browser จะเกด error ดงภาพ

รปท 8-2 แสดงขอความ error เมอ browser เรยกไฟลทไมสามารถ execute ได

Page 28: หนังสือ Linux Advance ภาษาไทย

28

ตวอยาง การใชคำาสง chown และ chgrp

root@sothorn:~# ls ­l test.sql­rwxr­xr­x 1 root root 0 2006­07­12 11:03 test.sqlroot@sothorn:~# chgrp postgres test.sqlroot@sothorn:~# ls ­l test.sql­rwxr­xr­x 1 root postgres 0 2006­07­12 11:03 test.sqlroot@sothorn:~# chown postgres test.sqlroot@sothorn:~# ls ­l test.sql­rwxr­xr­x 1 postgres postgres 0 2006­07­12 11:03 test.sqlroot@sothorn:~#

root@sothorn:~# ls ­l test.sql­rwxr­xr­x 1 root root 0 2006­07­12 11:03 test.sqlroot@sothorn:~# chown postgres test.sqlroot@sothorn:~# ls ­l test.sql­rwxr­xr­x 1 postgres root 0 2006­07­12 11:03 test.sqlroot@sothorn:~# chown root test.sqlroot@sothorn:~# ls ­l test.sql­rwxr­xr­x 1 root root 0 2006­07­12 11:03 test.sqlroot@sothorn:~# chown postgres.postgres test.sqlroot@sothorn:~# ls ­l test.sql­rwxr­xr­x 1 postgres postgres 0 2006­07­12 11:03 test.sql

คำาสงทเกยวของในบทนchmodchgrpchown

Page 29: หนังสือ Linux Advance ภาษาไทย

29

บทท 10การใชงาน System Config ตาง ๆ

ลนกซ Red Hat มเครองมอในการชวยปรบแก config ตางๆของระบบ เชน การเปลยน IP การปรบวนท เวลา ฯลฯ เราสามารถทดลองดไดวามโปรแกรมอะไรบาง โดยการพมพ system- แลวกด Tab สองครงกจะเหนดงภาพ สำาหรบ Red Hat ใน เวอรชนตำากวา Enterprise 4 หรอ FC4 กจะขนตนดวย redhat- [root@training1 ~]# system­system­cdinstall­helper          system­config­packagessystem­config­authentication     system­config­printersystem­config­date               system­config­printer­guisystem­config­display            system­config­printer­tuisystem­config­httpd              system­config­rootpasswordsystem­config­keyboard           system­config­sambasystem­config­language           system­config­securitylevelsystem­config­lvm                system­config­securitylevel­tuisystem­config­mouse              system­config­servicessystem­config­network            system­config­soundcardsystem­config­network­cmd        system­config­timesystem­config­network­druid      system­config­userssystem­config­network­gui        system­control­networksystem­config­network­tui        system­install­packagessystem­config­nfs                system­logviewer

โปรแกรมตางๆ เหลานจะอยในเมนอยแลว โปรแกรมจะชวยเราทำางานใน Graphic Mode เทานน

รปท 10- 1 แสดงโปรแกรม System Settings

Page 30: หนังสือ Linux Advance ภาษาไทย

30

ตดตงโปรแกรม system-configถาในขนตอนตดตงลนกซไมไดเลอก Package Server Configuration Tools และ Administration Tools

กไมสามารถใชงานโปแกรม system-config ตางๆได

รปท 10-2 การตดตงโปรแกรม Server Configuration Tools

รปท 10-3 การตดตงโปรแกรม Administration Tools

Page 31: หนังสือ Linux Advance ภาษาไทย

31

system-config-network / neat ชวยในการเปลยน IP

รปท 10-4 แสดงโปรแกรม system-config-network

system-config-display ชวยในการเปลยนความละเอยดของหนาจอ

รปท 10-5 แสดงโปรแกรม system-config-display

Page 32: หนังสือ Linux Advance ภาษาไทย

32

สวนการทำางานใน Text Mode ใหใชคำาสง setup

รปท 10-6 รปแสดงการใชคำาสง setup

รปท 10-7 แสดงการใชคำาสง setup เลอกเมน Network configuration

การเปลยนแปลงคา Network TCP/IP โดยการแกไฟลคอนฟก

Page 33: หนังสือ Linux Advance ภาษาไทย

33

ถาหากเราตองการเปลยน IP ของเครองโดยทเราไมใชเครองมอชวยกสามารถแกไฟลไดสะดวกเวลาทเราทำางานบน Text Mode

การเปลยน IP Address ไดเรกทอรทเกยวกบ Network ของ Red Hat อยท /etc/sysconfig/network­scripts/

[root@training1 ~]# cd /etc/sysconfig/network­scripts/[root@training1 network­scripts]# lsifcfg­eth0      ifdown­ipv6  ifup          ifup­isdn    ifup­sitifcfg­lo        ifdown­isdn  ifup­aliases  ifup­plip    ifup­slifdown          ifdown­post  ifup­ippp     ifup­plusb   ifup­wirelessifdown­aliases  ifdown­ppp   ifup­ipsec    ifup­post    init.ipv6­globalifdown­ippp     ifdown­sit   ifup­ipv6     ifup­ppp     network­functionsifdown­ipsec    ifdown­sl    ifup­ipx      ifup­routes  network­functions­ipv6[root@training1 network­scripts]#

ไฟลทเราตองแกคอ ifcfg-eth0DEVICE=eth0BOOTPROTO=staticBROADCAST=192.168.1.255HWADDR=00:10:B5:CC:98:36IPADDR=192.168.1.5NETMASK=255.255.255.0NETWORK=192.168.1.0ONBOOT=yesTYPE=Ethernet

ถาหากตองการเปลยน IP กสามารถทำาไดโดยการแกไขบรรทด IPADDR หรอบรรทดอนๆ ตามตองการ แกเสรจใหใชคำาสง service network restart หรอ /etc/init.d/network restart แคนเปลยน IP ไดแลวครบ

การเปลยน Name เซรฟเวอรName เซรฟเวอร สามารถเปลยนไดท /etc/resolv.conf

nameserver 203.155.33.1

หมายเลข IP ของเนมเซรฟเวอรสามารถเปลยนไดตาม ISP ททานใชบรการอย

Page 34: หนังสือ Linux Advance ภาษาไทย

34

การแกปญหากรณทใช system-comfig-display แลวยงเขา X Window ไมไดกรณทตดตงลนกซใชงานอยแลวเปลยนจอทำาใหเขา X Window ไมได ใหแกปญหาโดยการบทเขา runlevel

3 แลวใชคำาสง system-config-display แลวปรบแกคาตางๆ แลวพมพคำาสง startx เพอเขาส X Window ถาไมสามารถเขา X Window ได กใหแกไขไฟล /etc/X11/xorg.conf ถาเปนลนกซเวอรชนเกา /etc/X11/XF86ConfigSection "Screen"        Identifier "Screen0"        Device     "Videocard0"        Monitor    "Monitor0"        DefaultDepth     24        SubSection "Display"                Viewport   0 0                Depth     16                Modes    "800x600" "640x480"        EndSubSection        SubSection "Display"                Viewport   0 0                Depth     24                Modes    "1024x768" "800x600" "640x480"        EndSubSectionEndSection

ลดขนาด Resolution ของ หนาจอลงมาโดยการลบ "1024x768" ออกSection "Screen"        Identifier "Screen0"        Device     "Videocard0"        Monitor    "Monitor0"        DefaultDepth     24        SubSection "Display"                Viewport   0 0                Depth     16                Modes    "800x600" "640x480"        EndSubSection        SubSection "Display"                Viewport   0 0                Depth     24                Modes    "800x600" "640x480"        EndSubSectionEndSection

หรอ ใหปรบลดคา HorizSync  VertRefresh ใหลดลงจากเดม

Page 35: หนังสือ Linux Advance ภาษาไทย

35

Section "Monitor"        Identifier   "Monitor0"        VendorName   "Monitor Vendor"        ModelName    "LCD Panel 1024x768"        HorizSync    31.5 ­ 48.5        VertRefresh  40.0 ­ 70.0        Option      "dpms"EndSection

คำาสงทเกยวของในบทนneatsetupsystem-config-display system-config-network system-config-packagessystem-config-*

Page 36: หนังสือ Linux Advance ภาษาไทย

36

บทท 11การ mount ไฟล system อนๆ

การใชงานบนวนโดวเวลาเราตองการเอาอปกรณบนทกขอมลอนใสเขาไปวนโดวกจะรจก และแสดงไดรวใหเหนและสามารถใชงานไดเลย บนลนกซเวอรชนใหมๆ กมความสามารถแบบนนแลวเชนกน แตกควรรเอาไวหากลนกซไมทำางานใหอตโนมตจะ mount อยางไร

mount point หรอ ไดเรกทอรทตองการ mount mount point คอ ไดเรกทอรทตองการเอาไฟลบนอปกรณทจะเมาทมาแสดง ไดเรกทอรทนยมสำาหรบการ

เมาท คอ /mnt เชน /mnt/floppy , /mnt/cdrom, แตในปจจบนในลนกซเวอรชนใหมๆ จะนยมเอา mount point ไปไวท /media เชน /media/cdrom, /media/hda1

ชออปกรณทจะ mount/dev/cdrom เปน CD/DVD Drive /dev/fd0 เปน Flopy Disk/dev/hda1 เปน ฮารดดสก Primary Master IDE พารตชนท 1/dev/sda1 เปน ฮารดดสก SCSI พารตชนท 1/dev/sda เปน อปกรณพวก Thumb drive USB ถาฮารดดสก เปน /dev/sda อปกรณพวกน กจะเปน

/dev/hdb จะมหมายเลขพารตชนหรอไมขนกบอปกรณนนๆ ตองลองเชน บางอน mount /dev/sda บางอนก mount /dev/sda1

การใชคำาสง mount mount options device | dir หรอ mount options device dirตวอยางmount -t vfat /dev/hda1 /mnt/hda1mount /dev/fd0 /mnt/fd0mount /dev/cdrom /mnt/cdrommount /dev/sda /mnt/thumbmount /dev/cdrommount /mnt/cdromการ mount แบบยอ mount options device | dir เชน mount /mnt/cdrom การทจะใชคำาสงแบบนได

จะตองมขอมลของอปกรณ หรอ พารตชนอยในไฟล /etc/fstab กอนกอนทจะ mount directory /mnt/fd0, /mnt/cdrom, /mnt/thumb จะเปนไดเรกทอรเปลาๆ เมอ mount

ไดสำาเรจในไดเรกทอรเหลานนกจะมไฟลตางทอยซงเปนไฟลในอปกรณท mount ขนมานนเอง

Page 37: หนังสือ Linux Advance ภาษาไทย

37

ยกเลกการเมาทเมอเมาทไดสำาเรจ จะตองยกเลกการเมาท การยกเลกการเมาท ใชคำาสง umount เชน CD-ROM จะเอาแผน

CD ออกไมไดถาไมยกเลกการเมาท หรออาจทำาความเสยหายใหกบอปกรณประเภท USB ไดการใชงาน umount umount option dir | device

ตวอยางการยกเลกการเมาทดวยคำาสง umountumount /mnt/fd0umount /mnt/cdromumount /mn/thumb

คำาสงทเกยวของในบทนmountumount

Page 38: หนังสือ Linux Advance ภาษาไทย

38

บทท 12การใชโปรแกรมบบอดไฟลเพอ Backup ขอมล

คำาสง tar (Tape Archiver)คำาสง tar เปนคำาสงทใชสำารองไฟลลง Tape Backup

แตยงใชสำาหรบบบอดไฟลหรอไดเรกทอรใหมขนาดเลกลง ใหรวมเปน .tar ไฟลเดยว เมอระบออปชน -z กจะบบอดดวยโปรแกรม gzip อกครงหนง ซงจะมนามสกล .tar.gz

รปแบบการใชคำาสง tar ออปชน ชอไฟลทบบอด ไฟลหรอไดเรกทอรทตองการบบอดออปชนของ tarc สราง archive ไฟลx กขอมลจาก archive ไฟลv แสดงรายละเอยดของการ tarz บบอดดวย gzip-f file กำาหนดชอของ archive ไฟล ซงจะเปนไฟลธรรมดา หรอไฟลอปกรณกได

ตวอยาง การบบอดไฟลดวย tar และ gzip[root@training1 backup]# tar cvfz postgres_data.tar.gz /usr/local/pgsql/data/usr/local/pgsql/data//usr/local/pgsql/data/pg_ident.conf/usr/local/pgsql/data/postgresql.conf/usr/local/pgsql/data/pg_xlog/...[root@training1 backup]# lspostgres_data.tar.gz

ตวอยางการขยายไฟล[root@training1 ~]# tar xvfz postgresql­8.0.7.tar.gzpostgresql­8.0.7/postgresql­8.0.7/doc/postgresql­8.0.7/doc/src/postgresql­8.0.7/doc/src/FAQ/postgresql­8.0.7/doc/src/FAQ/FAQ.html...[root@training1 ~]# ls ­ldrwxrwxrwx  6   70   70      4096 Feb 13 07:31 postgresql­8.0.7

Page 39: หนังสือ Linux Advance ภาษาไทย

39

คำาสง zipเปนคำาสงทใชบบอดไฟลไฟลทบบอดบนลนกซ แลวสามารถนำาไปขยายไฟลไดบนวนโดวโดยใช winzip

หรอ winrar คำาสง zip ม ออปชนมากมายแตจะไมพดถงในทนออปชน -r zip รวมเอาไฟลทอยในไดเรกทอรยอยดวย

[root@training1 backup]# zip ­r postgres_backup.zip /usr/local/pgsql/data/

adding: usr/local/pgsql/data/ (stored 0%) adding: usr/local/pgsql/data/pg_ident.conf (deflated 54%) adding: usr/local/pgsql/data/postgresql.conf (deflated 65%) adding: usr/local/pgsql/data/pg_xlog/ (stored 0%)...[root@training1 backup]# ls ­l­rw­r­­r­­   1 root root 2313921 Jul 18 12:19 postgres_backup.zip

ขยายไฟลดวย unzip[root@training1 backup]# unzip postgres_backup.zip Archive:  postgres_backup.zip

creating: usr/local/pgsql/data/ inflating: usr/local/pgsql/data/pg_ident.conf inflating: usr/local/pgsql/data/postgresql.conf creating: usr/local/pgsql/data/pg_xlog/...

คำาสงทเกยวของในบทน tarzipunzip

ทยกตวอยางมายงกลาวถงรายละเอยดของแตละคำาสงยงไมหมดหากตองการดวธการใชงานเพมเตม ใชคำาสง

man tarman zipman unzip

Page 40: หนังสือ Linux Advance ภาษาไทย

40

บทท 13คำาสงทเกยวของกบการดแลเซรฟเวอร

การใชงานเซรฟเวอรจะเกดปญหาขนมาถาไมเกดจากการถกแฮก กจะเกดจากผดแลระบบเองไมใสใจดแล เชน ฮารดดสกเตม ซงจะสรางปญหาปวดหวใหกบผดแลระบบมอใหมพอสมควร เพราะฉะนนควรจะปองกนเอาไวกอนโดยใชคำาสงเพอตรวจสอบอยบอยๆ

คำาสง dfdf เปนคำาสงทรายงานการใชงานพนทฮารดดสก ซงมออปชนตางๆ แตทใชบอยคอ -h

ซงจะแสดงขนาดพนททเหลอและทใชไปแลว ออกมาเปน K, M, G ซงอานเขาใจงายตวอยาง

[root@training1 ~]# df ­hFilesystem            Size  Used Avail Use% Mounted on/dev/hda2             7.7G  2.6G  4.8G  36% //dev/hda5             9.7G  2.8G  6.4G  31% /backup/dev/hda1              99M  8.3M   86M   9% /boot/dev/hda6             4.9G   42M  4.6G   1% /home/dev/hda3              13G  4.4G  7.5G  38% /usr/local/pgsql

คำาสง ps ps เปนคำาสงทใชดสถานะการทำางานของแตละโปรแกรมทรนอย (Process) คำาสง ps มออปชนเยอะมาก

แตมทใชอยบอย คอ-e แสดงทกโปรเซส-f แสดงแบบเตมรปแบบตวอยาง

[root@training1 ~]# ps ­efUID        PID  PPID  C STIME TTY          TIME CMDroot         1     0  0 02:30 ?        00:00:00 init [5]root         2     1  0 02:30 ?        00:00:00 [ksoftirqd/0]root         3     1  0 02:30 ?        00:00:00 [events/0]root         4     3  0 02:30 ?        00:00:00 [khelper]...

คอลมนซายสดจะเปนเจาของโปเซส ถดมาเปนหมายเลขโปรเซส คอลมนขวาสดจะเปนคำาสงททำางานอยกรณทตองการดเฉพาะโปรเซสทตองการกสามารใช | grep รวมดวย

Page 41: หนังสือ Linux Advance ภาษาไทย

41[root@training1 ~]# ps ­ef |grep postgrespostgres 17952     1  0 10:13 ?        00:00:00 /usr/local/pgsql/bin/postmaster ­D /usr/local/pgsql/datapostgres 17954 17952  0 10:13 ?        00:00:00 postgres: writer process postgres 17955 17952  0 10:13 ?        00:00:00 postgres: stats buffer process postgres 17956 17955  0 10:13 ?        00:00:00 postgres: stats collector process 

คำาสง killใชสำาหรบหยดการทำางานของโปรเซส หรอพดไดวาฆาโปรเซสทง ในการใชคำาสง kill ตามดวยหมายเลข

โปรเซส (PID) เชน

[root@training1 ~]# kill 17952

คำาสง topเปนการดโปรเซสโดยรวมของเครองแบบ real time ซงจะ refresh ตามเวลาทกำาหนด การใชคำาสง top -d 1

ให refresh ทก 1 วนาท.top ­ 14:49:32 up 12:19,  4 users,  load average: 0.00, 0.00, 0.00Tasks:  83 total,   1 running,  82 sleeping,   0 stopped,   0 zombieCpu(s):  0.3% us,  0.3% sy,  0.0% ni, 99.3% id,  0.0% wa,  0.0% hi,  0.0% siMem:    515108k total,   422216k used,    92892k free,    23012k buffersSwap:  2112508k total,      160k used,  2112348k free,   253544k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 1 root      16   0  3156  560  480 S  0.0  0.1   0:00.72 init 2 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0 3 root       5 ­10     0    0    0 S  0.0  0.0   0:00.00 events/0 4 root       6 ­10     0    0    0 S  0.0  0.0   0:00.00 khelper 5 root      15 ­10     0    0    0 S  0.0  0.0   0:00.00 kacpid 20 root       5 ­10     0    0    0 S  0.0  0.0   0:00.00 kblockd/0 30 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pdflush 31 root      15   0     0    0    0 S  0.0  0.0   0:00.28 pdflush 33 root      11 ­10     0    0    0 S  0.0  0.0   0:00.00 aio/0 21 root      15   0     0    0    0 S  0.0  0.0   0:00.00 khubd 32 root      16   0     0    0    0 S  0.0  0.0   0:00.77 kswapd0 107 root      25   0     0    0    0 S  0.0  0.0   0:00.00 kseriod 186 root      15   0     0    0    0 S  0.0  0.0   0:00.20 kjournald 1047 root       6 ­10  2124  448  376 S  0.0  0.1   0:00.01 udevd 1644 root      16   0     0    0    0 S  0.0  0.0   0:00.02 kjournald 1645 root      19   0     0    0    0 S  0.0  0.0   0:00.00 kjournald

คำาสงในบทน df ps

Page 42: หนังสือ Linux Advance ภาษาไทย

42

killtop

บทท 14การตดตง JAVA บนลนกซตระกล Red Hat

ดาวนโหลด j2sdk เวอรชน 1.4.2_05 จาก http://java.sun.com หรอ http://java.sun.com/j2se/1.4.2/download.html ไฟลทไดมา ชอไฟล j2sdk-1_4_2_05-linux-i586.rpm.bin หากไฟลทดาวนโหลดมายงไมเปน mode execute ใหใชคำาสง[root@localhost root]# chmod 755 j2sdk-1_4_2_05-linux-i586.rpm.bin[root@localhost root]# ./j2sdk-1_4_2_05-linux-i586.rpm.binจะไดไฟลj2sdk-1_4_2_02-linux-i586.rpm[root@localhost root]# rpm -Uvh j2sdk-1_4_2_05-linux-i586.rpm.rpm #เพอตดตงPreparing... ########################################### [100%] 1:j2sdk ########################################### [100%][root@localhost root]# เมอตดตงเสรจไฟลจะไปเกบอยท /usr/java/j2sdk1.4.2_05แกไขไฟล /ete/profile[root@localhost root]# vi /etc/profileบรรทดลางสดexport JAVA_HOME=/usr/java/j2sdk1.4.2_05export PATH=${PATH}:/usr/java/j2sdk1.4.2_05/binSave ไฟล แลวใชคำาสง[root@localhost root]# source /etc/profile #เพอใหใชงานไดโดยไมตอง reboot เครองทดสอบ [root@localhost root]# echo $JAVA_HOME/usr/java/j2sdk1.4.2_05

Page 43: หนังสือ Linux Advance ภาษาไทย

43

[root@localhost root]# javaUsage: java [-options] class [args...](to execute a class)or java [-options] -jar jarfile [args...](to execute a jar file) ...ถาไดผลแบบบนแสดงวาตดตง JAVA เรยบรอยแลว

บทท 15ขนตอนการตดตง PostgreSQL 8.x บนลนกซตระกล Red Hat ดวยการ Compile Source Code

ตรวจสอบดวา Package postgresql ทมากบ Linux Distribution ไดถกตดตงไปแลวหรอไม โดยใชคำาสง# rpm -ql postgresqlผล package postgresql is not installed# rpm -ql postgresql-serverผล package postgresql-server is not installedถา Package postgresql ไดถกตดตงไวกอนแลว ใหใชคำาสงดานลางนเพอลบ package ออก# rpm -e postgresql-server# rpm -e postgresqlสงจำาเปน 1. RedHat 9.0 หรอ Linux ตระกล Red Hat ทตดตง Package ชด Development Tools หากใครทยงไมตดตงกสามารถตดตงดวย คำาสงเหลาน บนกราฟกโหมดRed Hat 9 ใชคำาสง# redhat-config-packages Fedora Core 4 / Red Hat Enterprise ใชคำาสง # system-config-packages

Page 44: หนังสือ Linux Advance ภาษาไทย

44

จะไดดงรป ถา Development Tools ยงไมไดเลอก กใหเลอกแลวกดปม Updateโปรแกรมจะถามหาแผนตดตงลนกซเอง2. Source code ของ PostgreSQL ดาวนโหลดจาก http://www.postgres.org ชอไฟล postgresql-8.0.7.tar.gzขนตอนการ compile และตดตง1. นำาไฟลทดาวนโหลดมา สมมต วามาเกบไวท /root ขยายไฟลออกมาโดยใชคำาสง2. [root@localhost root]# tar xvfz postgresql-8.0.7.tar.gzจะได directory postgresql-8.0.7 ใชคำาสง3. [root@localhost root]# cd postgresql-8.0.7[root@localhost postgresql-8.0.7]# 4. [root@localhost postgresql-8.0.7]# ./configure --prefix=/usr/local/pgsql เปนการ Config เพอ บอก directory ทจะตดตง ใหไปตดตงโปรแกรมท /usr/local/pgsql 5. [root@localhost postgresql-8.0.7]# gmake คำาสง gmake เพอ compile 6. [root@localhost postgresql-8.0.7]# gmake install คำาสง gmake install เพอตดตงไปไวทเรากำาหนดใน prefix คอ /usr/local/pgsql7. [root@localhost postgresql-8.0.7]# useradd postgresเพมผใชงานท ชอ postgres8. [root@localhost postgresql-8.0.7]# cd /usr/local/pgsql เขาไปทำางานท /usr/local/pgsql 9. [root@localhost pgsql]# mkdir data

Page 45: หนังสือ Linux Advance ภาษาไทย

45

สราง directory data เพอเปนทเกบขอมล และไฟล Config10. [root@localhost pgsql]# chown postgres:postgres data เปลยน เจาของและกลม ของ directory data เปน postgres 11. [root@localhost pgsql]# su - postgres เปลยนการทำางานจาก user root เปน user postgres 12. [postgres@localhost postgres]$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data สราง database ตงตน ถงตอนน PostgreSQL พรอมท Start แลวหากตองการ Start Server กทำาได โดยใชคำาสง [postgres@sothorn postgres]$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data & แตมวธการ Start Service ทดกวาน อานตอครบ

วธการเพม PostgreSQL ใหเปน Service ของ Red Hat และทำางาน ตอนบท ทำางานดวย user root นะครบ1. [root@localhost init.d]# cd /root/postgresql-8.0.7/contrib/start-scripts2. [root@localhost start-scripts]# lsfreebsd linux PostgreSQL.darwin StartupParameters.plist.darwinจะมไฟล ชอ linux เปน startup ไฟล ของ PostgreSQL3. [root@localhost start-scripts]# cp linux /etc/init.d/postgresqlcopy ไฟล linux ไปไวท /etc/init.d พรอมเปลยนชอเปน postgresql 4. [root@localhost start-scripts]# chmod 755 /etc/init.d/postgresqlเปลยนใหเปน mode ท execute ได 5. [root@localhost start-scripts]# service postgresql startStarting PostgreSQL: ok [root@localhost start-scripts]# chkconfig --add postgresqlเพม PostgreSQL เขาไปในระบบการ Start ตอนบท[root@localhost start-scripts]# chkconfig postgresql on ให PostgreSQL Start Service ตอนทบทเครอง

Page 46: หนังสือ Linux Advance ภาษาไทย

46

ตอนนกสามารถ start stop restart service ของ PostgreSQL กสามารถใชคำาสง# service postgresql start# service postgresql stop# service postgresql restart

เรยบรอยแลวครบ พรอมแลวทจะใชงาน PostgreSQL 8.0.7 บนเครอง localhost แตยงไมพรอมทจะใหเครองลกขายตดตอเขามา

การอนญาตใหเครองลกขายเขามาใชงานผานทางโปรโตคอล TCP/IP

1. แกไฟล /usr/local/pgsql/data/pg_hba.conf pg_hba.conf เปนไฟลทอนญาตใหเครองลกขายเขามาใชงานได

# TYPE DATABASE USER CIDR-ADDRESS METHOD# "local" is for Unix domain socket connections onlylocal all all trust# IPv4 local connections:host all all 127.0.0.1/32 trusthost all all 192.168.1.0/24 password192.168.1.0/24 หมายความวา อนญาตใหเครองลกขายทม IP 192.168.1.1-192.168.1.254 เขามาใชงานไดทงนขนอยกบ วง IP ททานใชงานอย แกไฟลแลวบนทกไฟล2. แกไฟล /usr/local/pgsql/data/postgresql.confเปนไฟลคอนฟกของ PostgreSQL ซงรายละเอยดเยอะมากแตในทนเราจะแกคอนฟกให PostgreSQL สามารถใหบรการผานทางโปรโตคอล TCP/IP ได

Page 47: หนังสือ Linux Advance ภาษาไทย

47

# - Connection Settings -เดม #listen_addresses = 'localhost' # what IP interface(s) to listen on; # defaults to localhost, '*' = any

เปลยนเปนlisten_addresses = '*' # what IP interface(s) to listen on; # defaults to localhost, '*' = any

เสรจแลวใชคำาสง service postgresql retstartเพอให PostgreSQL อานคาคอนฟกใหม

3. เปลยน password ใหกบ user postgres เพอเขาใชงานฐานขอมล[root@localhost root] su – postgres[postgres@localhost postgres]$ /usr/local/pgsql/bin/psql template1Welcome to psql 8.0.7, the PostgreSQL interactive terminal.Type: copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit template1=# ALTER USER postgres with password 'password_here';ALTER USERtemplate1=# \q[postgres@sothorn postgres]$

PATH PostgreSQL

Page 48: หนังสือ Linux Advance ภาษาไทย

48

การทเราจะใชคำาสงของ PostgreSQL ทอยใน /usr/local/pgsql/bin เราตองปอน PATH เตมเชน /usr/local/pgsql/bin/psql เพราะเรายงไม set PATH ใหกบระบบ ถาเรา set PATH แลว เราจะสามารถใชคำาสงของ PostgreSQL ไดเลย เชน แทนทจะพมพ /usr/local/pgsql/bin/psql กพมพแค psql การ Set PATH ให PostgreSQL ทำาไดไดโดยแกไฟล /etc/profile แลวเพมบรรทดนลงไปทบรรทดสดทายexport PATH=${PATH}:/usr/local/pgsql/binบนทกไฟลแลว ใชคำาสง source /etc/profileเพอให PATH สามารถใชงานไดเลยโดยไมตองรบทเครอง

บทท 16การควบคมเซรฟเวอรลนกซจากระยะไกลดวย SSH และสงไฟล ดวย SFTP

การใชงานเซรฟเวอรโดยปกตแลวเราอาจจะไมไดนงอยหนาจอของเซรฟเวอรตลอดเวลา เราสามารถรโมทเขามาทำางานได เมอกอนเราสามารถรโมทเขามาทำางานดวยโปรแกรม telnet แต telnet มขอดอยในการรกษาความปลอดภยในการสงขอมลระหวางไคลเอนตกบเซรฟเวอร เพราะไมมการเขารหส ขอมลระหวางการสงขอมล ในปจจบนไดเปลยนมาใช Secure Shell (SSH) Secure Shell (SSH)

โปรโตคอลในการสรางการตดตอเพอเขาใชงานระบบอยางปลอดภย โดยทโปรโตคอลดงกลาวจะทำาการเขารหสขอมลทกอยางไมวาจะเปน ชอผใช รหสผาน หรอขอมลอนๆ กอนทจะทำาการสงไปยงเครองเซรฟเวอร โดยปกตนยมนำา SSH มาใชงานแทน telnet เพราะมความปลอดภยมากกวา

Secure File Transfer Protocol (SFTP) เปนโปรโตคอลทนำามาใชแทน FTP โดยจะเปนสวนหนงของ SSH ซงจะม sftpserv

เปนโปรแกรมทรนอยทฝงเซรฟเวอร รอรบการตดตอจากไคลเอนตผานทางคำาสง sftp บนระบบปฏบตการ linux และในระบบปฏบตการ Windows กมโปรแกรมทจะใชสำาหรบตดตอและโอนถายขอมลกบเซรฟเวอรผาน SSH ดวย

Page 49: หนังสือ Linux Advance ภาษาไทย

49

เชน winscp และ SSH Secure File Transfer Client เปนตนการใชงาน ssh และ sftp บนลนกซตระกล Red Hat หลงจากตดตงเสรจสามารถใชงานไดเลยถาไมไดตดตง

Firewall การใชงาน ssh บนลนกซ ssh [­1246AaCfgkMNnqsTtVvXxY] [­b bind_address] [­c  cipher_spec] [­D port] [­e escape_char] [­F configfile] [­i  identity_file] [­L 

[bind_address:]port:host:hostport] [­l login_name] [­m mac_spec[­O ctl_cmd] [­o option] [­p port] [­R[bind_address:]port:host:hostport] [­S ctl_path] [user@]hostname[command]

ตวอยางการใชงาน sshroot@sothorn:~# ssh ­l root [email protected]'s password:Last login: Sat Jul 22 08:36:58 2006[root@training1 ~]# exitConnection to 192.168.1.5 closed.root@sothorn:~# ssh ­l root 192.168.1.5 shutdown ­h [email protected]'s password:root@sothorn:~#

การใชงาน ssh จากโปรแกรมบนวนโดว การทำางานอยบนวนโดวกสามารรโมทเขามาทำางานทลนกซได แตตองตดตงโปรแกรม SSH Client กอน เชน Putty SSH Secure Shell Client

ตวอยาง โปรแกรม Putty

Page 50: หนังสือ Linux Advance ภาษาไทย

50

รปท 16-1 แสดงโปแกรม Putty

ตวอยางโปแกรม SSH Secure Shell Client

รปท 16-2 แสดงโปรแกรม SSH Secure Shell Client

การใชงาน sftp sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S program] [-s subsystem | sftp_server] host ftp [[user@]host[:file [file]]] sftp [[user@]host[:dir[/]]] sftp -b batchfile [user@]hostตวอยางการใชงาน sftp

Page 51: หนังสือ Linux Advance ภาษาไทย

51

เอาไฟลจากเครองทเราทำางานอยไปไวท serverroot@sothorn:~# sftp [email protected] to [email protected]'s password:sftp> put postgresql­8.0.7.tar.gzUploading postgresql­8.0.7.tar.gz to /root/postgresql­8.0.7.tar.gzpostgresql­8.0.7.tar.gz                       100%   13MB 6.7MB/s   00:02sftp>

เอาไฟลจาก Server มาไวทเครองทำางานsftp>lsdovecot­0.99.11­2.EL4.1.i386.rpmpostgresql­8.0.7.tar.gz           sftp> get dovecot­0.99.11­2.EL4.1.i386.rpmFetching /root/dovecot­0.99.11­2.EL4.1.i386.rpm to dovecot­0.99.11­2.EL4.1.i386.rpm/root/dovecot­0.99.11­2.EL4.1.i386.rpm        100%  601KB 600.7KB/s   00:01sftp>

การใชงาน sftp จากวนโดว บนวนโดวเราสามารถสงไฟลขนไปบนลนกซ หรอนำาไฟลจากลนกซลงมาทวนโดว โดยการตดตง sftp

client ซงมอยหลายโปรแกรม เชน WinSCP, SSH Secure File transfer Client

ตวอยางโปแกรม WinSCP

Page 52: หนังสือ Linux Advance ภาษาไทย

52

รปท 16-3 แสดงโปรแกรม winscp

โปแกรม SSH Secure File transfer Client

รปท 16-4 แสดงโปแกรม SSH Secure File transfer ClientSFTP แบบกราฟกบนลนกซ

Page 53: หนังสือ Linux Advance ภาษาไทย

53

บนลนกซกมโปรแกรมสำาหรบ sftp ไดแกโปรแกรม gftp

รปท 16-5 แสดงโปรแกรม gftpทกลาวมาทงหมดในบทนคงชวยใหทานสามารถทำางานกบลนกซไดสะดวกยงขน

คำาสงทเกยวของsshsftp

บทท 17

Page 54: หนังสือ Linux Advance ภาษาไทย

54

crontabcrontab เปนโปแกรมตงเวลาทำางานบนลนกซโดยใหลนกซทำางานทกๆ เวลาทกำาหนด เชน ทกนาท,

ทกครงชวโมง, ทกชวโมง, ทกเทยงคนของวนอาทตย, ทกวนท 1 มกราคมของทกป การทำางานของ crontab โปรแกรมจะมการเปด service ของ crontab อยแลว เราเพยงเรยกใชงานโปแกรม แลวระบชวงเวลา และคำาสงทตองการใหทำางาน เมอเราเรยกโปแกรม crontab มาใชงานโปแกรมกจะเรยกโปแกรม Text Editor ขนมาทำางานสวนใหญแลวบนลนกซ Red Hat จะเปนโปแกรม Vi สวน Debian และ Ubuntu จะเปนโปรแกรม mcการใชงานโปแกรม crontabcrontab [­u user] filecrontab [­u user] { ­e | ­l | ­r }

­e      แกไข หรอเพม crontab ของ user­l      แสดง crontab ของ user­r      ลบ crontab ของ userการทำางานของ crontab จะผกตดอยกบแตละ user เรา Login เขามาทำางานดวย user

ใดถาเรยกคำาสงโดยไมระบออปชน -u กจะเปน crontab ของ user ท Login เขามา

รปแบบของคำาสงตงเวลาใหคำาสงตางๆ ทำางาน หลงจากทเรยกโปแกรม crontab แลวจะเปดโปแกรม Text Editor เราจะตองระบชวงเวลา และคำาสงโดยมรปแบบดงน

นาท ชวโมง วนท เดอน วนในสปดาห คำาสงทตองการใหทำางาน นาท แทนดวย 0-59 ชวโมง แทนดวย 0-23 โดยท 0=เทยงคน วนท แทนดวย 1-31 เดอน แทนดวย 1-12 วนในสปดาห แทนดวย 0-6 โดยท 0=วนอาทตยตวอยาง * * * * * คำาสง ทำาทกๆ นาท */30 * * * * คำาสง ทำาทกๆ 30 นาท * 20 * * * คำาสง ทำาทกๆนาทโดยเรมตงแต 20.00-20.59 น. 5 0 * * * คำาสง ทำาทกๆวนเวลา 00.05 น. 0 0 * * 0 คำาสง ทำาทกวนอาทตยตอนเทยงคน */10 8-17 * * * คำาสง ทำาทก 10 นาท เวลา 08.00-17.00 น.

ตวอยางการใชงานจรง

Page 55: หนังสือ Linux Advance ภาษาไทย

55

0 0 * * * /sbin/shutdow -r now0 0 * * 0 /usr/local/pgsql/util/backup/sunday.sh 0 0 1 1 * /usr/lcoal/hospitalOS/reset_sequence.sh

คำาสงทเรยกใชงานเปนไดทงคำาสงทมอยบนลนกซ และ shell script ทเราเขยนขนมาเอง เชน จากตวอยางขางตน shutdown -r now เปนคำาสงบนลนกซ sunday.sh และ reset_sequence.sh เปน shell script ทเขยนขนเอง

ตวอยางรายงานขอผดพลาดกรณทเราระบชวงเวลาไมถกตอง [root@training1 ~]# crontab ­ecrontab: installing new crontab"/tmp/crontab.XXXXgIneQA":1: bad minuteerrors in crontab file, can't install.Do you want to retry the same edit?

ตวอยางตดตง crontab เรยบรอย[root@training1 ~]# crontab ­ecrontab: installing new crontab[root@training1 ~]#

บทท 18

Page 56: หนังสือ Linux Advance ภาษาไทย

56

การเพมพารตชนหรอเพมฮารดดสกกรณทมพนทฮารดดสกเหลอ หรอตองการเพมฮารดดสกบนวนโดวเราสามารถเอาฮารดดสกมาเสยบแลว

Format กสามารถใชงานไดเลยซงม Drive เปน Drive ถดไป แตบนลนกซนนไมเปนอยางนนมหลายขนตอน หลายคำาสง เรามาเรยนรกน

การใชงาน fdiskfdisk เปนโปรแกรมทใชสำาหรบจดการพารตชนของฮารดดสก

fdisk [-u] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device fdisk -l [-u] [device ...] fdisk -s partition ... fdisk -v

กรณทเราตดตงลนกซแลวยงมพนทเหลอแลวตองการนำาพนททเหลอมาใชประโยชนเราสามารถ ตรวจสอบดไดวาฮารดดสกเรามพนทเหลอหรอไม

[root@fdisk ~]# fdisk ­l

Disk /dev/hda: 40.0 GB, 40020664320 bytes255 heads, 63 sectors/track, 4865 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System/dev/hda1   *           1          13      104391   83  Linux/dev/hda2              14        1288    10241437+  83  Linux/dev/hda3            1289        1353      522112+  82  Linux swap[root@fdisk ~]#

หลงจากทใชคำาสง fdisk -l จะเหนวาฮารดดสกขนาด 40.0 GB ม 4865 cylinder ตอนนใชไป 1353 cylinderถาหากเราตองการจดการพารตชนของฮารดดสก /dev/hda เรากสามารถใชคำาสง fdisk /dev/hda หลงจากนนกจะเขาสการใชงานโปรแกรม fdisk ถาเราใชคำาสง m ใหโปแกรม fdisk แสดงคำาสงทงหมดออกมา

Page 57: หนังสือ Linux Advance ภาษาไทย

57

[root@fdisk ~]# fdisk /dev/hda

The number of cylinders for this disk is set to 4865.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): mCommand action  a   toggle a bootable flag

b   edit bsd disklabelc   toggle the dos compatibility flagd   delete a partitionl   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tablep   print the partition tableq   quit without saving changess   create a new empty Sun disklabelt   change a partition's system idu   change display/entry unitsv   verify the partition table

  w   write table to disk and exit  x   extra functionality (experts only)

Command (m for help):

ตองการสรางพารตชนใหมCommand (m for help): nCommand action   e   extended   p   primary partition (1­4)eSelected partition 4First cylinder (1354­4865, default 1354):Using default value 1354Last cylinder or +size or +sizeM or +sizeK (1354­4865, default 4865):Using default value 4865

ในการสรางพารตชนใหมใหใชคำาสง n เนองจาก พารตชนเดมทมอย 3 พารตชนนน เปน Primary พารตชน ทงหมด ถาพารตชนทเพมมาใหมเปน Primary อก กไมสามารถทจะเพมพารตชนไดอก เพราะฉะนนเราตองเอาพนททเหลอทงหมดเปน Extended โดยการตอบ e เดมมอยแลว 3 พารตชนกใหพารตชนตอมาเปนพารตชนท 4 First cylinder ให Enter ผาน หรอใส 1354 ตามคา default กได เพราะเราตองการพารตชนตอจากพารตชนเดมอยแลว Last cylinder or +size กให Enter ผานเชนกน เพราะตองการใชพนททเหลอทงหมดเปน Extended ใหใชคำาสง p เพอ print รายละเอยดของการพารตชนออกมาด

Page 58: หนังสือ Linux Advance ภาษาไทย

58

Command (m for help): p

Disk /dev/hda: 40.0 GB, 40020664320 bytes255 heads, 63 sectors/track, 4865 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System/dev/hda1   *           1          13      104391   83  Linux/dev/hda2              14        1288    10241437+  83  Linux/dev/hda3            1289        1353      522112+  82  Linux swap/dev/hda4            1354        4865    28210140    5  Extended

Command (m for help):

เราจะเหนไดวาพารตชนท 5 เปน Extended พารตชนเรมท cylinder 1354 จบท 4865 ถอวาไดใชพนทของฮารดดสกหมดแลว ในการเพมพารตชนถดไป กจะเปนการแบงยอย Extended ออกมา

Command (m for help): nFirst cylinder (1354­4865, default 1354):Using default value 1354Last cylinder or +size or +sizeM or +sizeK (1354­4865, default 4865): +10000M

Command (m for help): p

Disk /dev/hda: 40.0 GB, 40020664320 bytes255 heads, 63 sectors/track, 4865 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System/dev/hda1   *           1          13      104391   83  Linux/dev/hda2              14        1288    10241437+  83  Linux/dev/hda3            1289        1353      522112+  82  Linux swap/dev/hda4            1354        4865    28210140    5  Extended/dev/hda5            1354        1476      987966   83  Linux

Command (m for help): wThe partition table has been altered!

Calling ioctl() to re­read partition table.

WARNING: Re­reading the partition table failed with error 16: Device or resource busy.The kernel still uses the old table.The new table will be used at the next reboot.Syncing disks.

การเพมพารตชนใหมใหใชคำาสง n แลว เมอถาม First cylinder ให Enter ผานเพอใชคา default Last cylinder or +size or +sizeM or +sizeK ใหตอบขนาดพารตชนทตองการ เชน +10000M เพอใหพารตชนนมขนาด 10 GB ใหใชคำาสง p เพอใหแสดงรายละเอยดของพารตชน หลงจากนนใหใชคำาสง w (write) สงทไดกระทำาไปลงฮารดดสก หลงจากใชคำาสง w แลวจะออกจากการใชงานโปรแกรม fdisk ใหทดลองใชคำาสง fdisk -l

Page 59: หนังสือ Linux Advance ภาษาไทย

59

[root@fdisk ~]# fdisk ­l

Disk /dev/hda: 40.0 GB, 40020664320 bytes255 heads, 63 sectors/track, 4865 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System/dev/hda1   *           1          13      104391   83  Linux/dev/hda2              14        1288    10241437+  83  Linux/dev/hda3            1289        1353      522112+  82  Linux swap/dev/hda4            1354        4865    28210140    5  Extended/dev/hda5            1354        2570     9775521   83  Linux

จะเหนวาพารตชนทสรางมาใหมม ID 83 ม ไฟล System เปน Linux เปนคาปกตหากตองการ File system เปนอยางอนได โดยใชคำาสง l (แอล) เพอดรหสของ File system แลวใชคำาสง t เพอเปลยน File system

Command (m for help): l

 0  Empty           1c  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid 1  FAT12           1e  Hidden W95 FAT1 75  PC/IX           be  Solaris boot 2  XENIX root      24  NEC DOS         80  Old Minix       c1  DRDOS/sec (FAT­ 3  XENIX usr       39  Plan 9          81  Minix / old Lin c4  DRDOS/sec (FAT­ 4  FAT16 <32M      3c  PartitionMagic  82  Linux swap      c6  DRDOS/sec (FAT­ 5  Extended        40  Venix 80286     83  Linux           c7  Syrinx 6  FAT16           41  PPC PReP Boot   84  OS/2 hidden C:  da  Non­FS data 7  HPFS/NTFS       42  SFS             85  Linux extended  db  CP/M / CTOS / . 8  AIX             4d  QNX4.x          86  NTFS volume set de  Dell Utility 9  AIX bootable    4e  QNX4.x 2nd part 87  NTFS volume set df  BootIt a  OS/2 Boot Manag 4f  QNX4.x 3rd part 8e  Linux LVM       e1  DOS access b  W95 FAT32       50  OnTrack DM      93  Amoeba          e3  DOS R/O c  W95 FAT32 (LBA) 51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor e  W95 FAT16 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs f  W95 Ext'd (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  EFI GPT10  OPUS            54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT­12/16/11  Hidden FAT12    55  EZ­Drive        a6  OpenBSD         f0  Linux/PA­RISC b12  Compaq diagnost 56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor14  Hidden FAT16 <3 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor16  Hidden FAT16    61  SpeedStor       a9  NetBSD          f2  DOS secondary17  Hidden HPFS/NTF 63  GNU HURD or Sys ab  Darwin boot     fd  Linux raid auto18  AST SmartSleep  64  Novell Netware  b7  BSDI fs         fe  LANstep1b  Hidden W95 FAT3 65  Novell Netware  b8  BSDI swap       ff  BBT

หลงจากทแบงพารตชนเสรจแลวถงแมวาจะม ID เปน 83 ม File system เปน Linux กตาม แตไมสามารถใชงานพารตชนนไดเพราะยงไมไดสราง filesystem ในการสรางไฟล system จำาเปนตองรบทเครองใหม ดงคำาเตอนWARNING: Re­reading the partition table failed with error 16: Device or resource busy.The kernel still uses the old table.The new table will be used at the next reboot.Syncing disks.

เมอรบทเครองมาใหมแลว กใหคำาสง mke2fs เพอสราง File system

Page 60: หนังสือ Linux Advance ภาษาไทย

60

การใชงาน mke2fsmke2fs [ ­c | ­l filename ] [ ­b block­size ] [ ­f fragment­size ] [ ­g blocks­

per­group ] [ ­i bytes­per­inode ] [­j ] [ ­J journal­options ] [ ­N number­of­inodes ] [ ­n ] [ ­m reserved­blocks­percentage ] [ ­o creator­os ] [ ­O feature[,...]   ]  [ ­q ] [ ­r fs­revision­level ] [ ­R raid­options ] [ ­v ] [ ­F ] [ ­L volume­label ] [ ­M last­

       mounted­directory ] [ ­S ] [ ­T filesystem­type ] [ ­V ] device [ blocks­count ]

mke2fs ­O journal_dev [ ­b block­size ] [ ­L volume­label ] [ ­n ] [ ­q ] [ ­v ] external­journal [ blocks­count ]

[root@fdisk ~]# mke2fs ­j /dev/hda5mke2fs 1.35 (28­Feb­2004)max_blocks 2502533120, rsv_groups = 76372, rsv_gdb = 596Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)1224000 inodes, 2443880 blocks122194 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=250399948875 block groups32768 blocks per group, 32768 fragments per group16320 inodes per groupSuperblock backups stored on blocks:        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: doneinode.i_blocks = 42920, i_size = 4243456Creating journal (8192 blocks): doneWriting superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or180 days, whichever comes first.  Use tune2fs ­c or ­i to override.[root@fdisk ~]#

เปนอนวาเสรจครบพารตชนนพรอมใชงานแลว ถาทดลอง mount กสามรถ mount ไดแลวดงตวอยาง

[root@fdisk ~]# mkdir /backup[root@fdisk ~]# mount /dev/hda5 /backup[root@fdisk ~]# df ­hFilesystem            Size  Used Avail Use% Mounted on/dev/hda2             9.7G  1.7G  7.5G  18% //dev/hda1              99M  8.3M   86M   9% /bootnone                  125M     0  125M   0% /dev/shm/dev/hda5             9.2G   54M  8.7G   1% /backup[root@fdisk ~]#

Page 61: หนังสือ Linux Advance ภาษาไทย

61

การสรางตงชอ(Label) ใหกบ partitionการใชงาน e2label device [ new-label ]

ตวอยางการใชงานคำาสง label[root@fdisk ~]# e2label /dev/hda5

[root@fdisk ~]# e2label /dev/hda5 /backup[root@fdisk ~]# e2label /dev/hda5/backup[root@fdisk ~]#

ตอนนพารตชน /dev/hda5 มชอวา /backup ชอนสามารถเอาไปใชงานรวมกบไฟล /etc/fstab

การเมาทพารตชนแบบถาวรการเมาทพารตชนโดยใชคำาสง mount นน เมอรบทเครองใหมกตอง mount ใหม ถาหากตองการให

พารตชน น mount อยตลอดเวลา กตองแกไฟล /etc/fstab ไฟล /etc/fstab จะเรยกใชดวยโปแกรม mount และ fsck ไฟล /etc/fstab ประกอบดวย 6 คอลมน ตอ 1 บรรทด#<device>     <mount point>     <filesystem type>     <options>     <dump freq>     <fsck_order>LABEL=/backup /backup ext3 defaults 0 0

คอลมนท 1 deviceพารตชนหรออปกรณทตองการ mount เชน /dev/hda5, /dev/hdb1 ถาพารตชนทมการตงชอแลว

กสามารถใชชอไดเชน LABEL=/backup

คอลมนท 2 mount pountmount point ชอไดเรคทอรทตองการเมาทเพอเอาไฟลทอยในอปกรณหรอพารตชนมาแสดง เชน

/mnt/cdrom, /mnt/usb, /mnt/

คอลมนท 3 filesystem type คอลมนท 3 เปนการระบ filesystem ของอปกรณหรอ partition ซงม หลาย filesystem ท support ext2 และ ext3 เปนไฟลซสเตมมาตรฐานของลนกซ แตปจจบนลนกซทออกมาใหมใชไฟลซสเตม ext3 และ

ReiserFS เปนไฟลซสเตมมาตรฐานสำาหรบลนกซ ext3 เปนไฟลซสเตมชนดใหม แตกตางกบ ext2 ท ext3 ม journalเชน ext2 ถาเราปดคอมพวเตอรโดยการกดสวทตทนท ขอมลจะเกดการเสยหาย และ จะมการ check filesystem เวลาบทขนมาใหม ถาเปน ext3 กจะไมเกดการเสยหายเพราะม journal reiserfs เปน journaling ไฟลซสเตมคลาย ext3 แตมความสามารถมากกวา ext3

swap เปน filesystem ของ swap partition

Page 62: หนังสือ Linux Advance ภาษาไทย

62

vfat และ ntfs เปนไฟลซสเตมของวนโดว วนโดว 95, 98, ME ใชไฟลซสเตม vfat หรอทเรารจกกน FAT32สวนวนโดว NT, 2000, XP ใชไฟลซสเตม NTFS ลนกซ kernel ของลนกซบางตวยงไมรจกไฟลซสเตม NTFS คอไมสามารถเมาทได

auto อนนไมใชไฟลซสเตม option auto หมายวาใหตรวจสอบ filesystem นอตโนมต เชน CD-ROM Floppy Disk ทเปนแบบนเพราะ เชน Floppy อาจถก format สำาหรบวนโดว หรออาจ format เปน ext2 สำาหรบลนกซ ดวยเหตนจงไมสามารถระบชนดของไฟลซสเตมลงไปไดจงตองใช auto CD-ROM กเชนเดยวกนกบ Floppy

คอลมนท 4 Mount options

คอลมนท 4 ในไฟล /etc/fstab เปน mount options ของอปกรณและพารตชนทตองการเมาท ซงจะมออปชนมาก ถาใชงานหลายออปชนใหคนดวย , (comma) ออปชนมมากมายสามารถดไดจาก man page ของคำาสง mount ออปชนตอไปนเปนออปชนทเราพบบอย

auto and noauto ถาใชออปชน auto อปกรณจะ mount อตโนมตตงแตตอนบท auto เปน defautl ออปชน ถาหากคณไมตองการใหเมาทอตโนมต กใหใชออปชน noauto

userc และ nouser ออปชนนมประโยชน ออปชน user เปนการอนญาตใหผใชงานทวไปสามารถ mount อปกรณหรอพารตชนนนๆ ได ออปชน nouser อนญาตใหเฉพาะ root เทานนทจะ mount อปกรณหรอพารตชนนนๆ ได nouser เปนคาปกต คอถาไมใสออปชนนคากจะเปน nouser

exec และ noexec ออปชนนทำาใหเราสามารถ execute binary ไฟล ทอยบนพารตชนนนได ออปชน noexec มประโยชนสำาหรบพารตชนทมไบนารไฟล แตไมตองการ execute หรอ พารตชนนนไมมความสามารถทจะ execute ไดบนลนกซ เชน วนโดวพารตชน ออปชน exec เปนคาปกตของออปชนน

ro เมาทไฟลซสเตมแบบอานไดอยางเดยว

rw เมาทไฟลซสเตมแบบอานและเขยนได

sync and async ออปชน sync เปนเรองของ input และ output ไปยงไฟลซสเตม เปนการใหเขยนลงไฟลซสเตมกอน กอนทจะรายงานวาเขยนเสรจแลว เชนเวลา copy ไฟล ไปยง floppy กจะเขยนไฟลลง floppy ใหเสรจเรยบรอยกอน แลวจะรายงาน

อยางไรกตามถาใช sync ออปชนใน /etc/fstab input และ output จะเสรจพรอมกน อยางทยกตวอยางการ copy ไฟลลง Floppy สมมตวาการเขยนลงแผนใชเวลานานหลงจากทสงคำาสง COPY ไป เปนเหตใหคณเอาแผน floppy ออกโดยทมไมได unmount กอน ผลกคอจะไมมไฟลอะไรเขยนลงบน Floppy Disk เลย async เปนคาปกต อยางไรกตามควรจะใชออปชน sync กบ floppy

defaults ออปชนน จะมความหมาย rw, suid, dev, exec, auto, nouser, and async

Page 63: หนังสือ Linux Advance ภาษาไทย

63

คอลมนท 5 dump optiondump เปนโปรแกรมสำาหรบการสำารองขอมล คอลมนท 5 ในไฟล /etc/fstab คอ dump option

ถาเราใชคำาสง dump โปแกรมจะเชคคาของเลขทเปนออปชนของโปรแกรม dump ถาเชคเจอ option = 0 กจะไม ลำาดบการ dump 1= ทกวน, 2=every other day 0= ไม dump

คอลมนท 6 fsck option fsck เปนโปรแกรม ยทลตเชคไฟลซสเตม fsck order ลำาดบการเชคของไฟล ของ fsck 0=ไมสนใจ,

1=อนดบแรก, 2-9 ตามลำาดบ

ตวอยางเมาทพารตชนแบบถาวรโดยแกไฟล /etc/fstabLABEL=/backup /backup ext3 defaults 0 2

หรอ/dev/hda5 /backup ext3 defaults 0 2

หลงจากทรบทเครองใหมพารตชนท 5 กจะถกเมาทอตโนมตเหมอนพารตชนอนๆ คราวนเรากพรอมใชงานแลว

## คางอย mount งายถามขอมลอยใน /etc/fstab

Page 64: หนังสือ Linux Advance ภาษาไทย

64

Disk Quotaลนกซเปนระบบปฏบตการแบบผใชงานหลายคน (multi user) เมอมผใชงานหลายคนการใชงานพนทบน

ฮารดดสกกเพมขนดวย และเมอเวลาผานไปกคงไมพอสำาหรบการใชงาน จำาเปนจะตองจำากดพนทการใชงาน ของผใชงานแตละคนโดยการใชโควตา ลนกซสามารถใชโควตาไดเลยเพราะมมากบ kernel ของลนกซอยแลว ระบบโควตา นนสามารถทำาได 2 แบบคอแบบสำาหรบ user quota และ group quota การทำางานของโควตานนเปนการทำางานตอพารตชน (ถาจะใชงาน quota กควรแบงพารตชนออกมาตงแตตอนตดตง) และจำากดการใชงานพนทดวย block (ขนาดพนท) และ inode (จำานวนไฟล)

ขนตอนการตดตงโควตา1. แกไขไฟล /etc/fatab ในคอลมนท 4 mount options เพม usrquota หรอ grpquota

LABEL=/home /home ext3    defaults      1 2

แกเปนLABEL=/home /home ext3    defaults,usrquota 1 2

2. เมาทพารตชน /home ใหมดวยคำาสงmount -o remount /home

3. สรางหรออพเดทฐานขอมลฐานขอมลของโควตาฐานขอมลจะเปนไบนารไฟลเกบอยทไดเรทอรเหนอสดมชอวา aquto.user และ aquota.group โดยใชคำาสงquotacheck -cm /homeหรอtouch /home/aquota.usertouch /home/aquota.groupchmod 600 /home/aquota.userchmod 600 /home/aquota.group

4. เรมหรอหยดการทำางานโควตา ดวย quotaon / quotaoff คำาสงนจะทำางานเฉพาะพารตชนถาทำาโควตาไวหลายพารตชนจะใหทำางานครงเดยวกใหใชออปชน -aในทนเราตองการทำาโควตาทพารตชน /home ใชคำาสงquotaon /home

5. กำาหนดสทธการใชงานพนทใหกบผใชงานโดยใชสง edquota# edquota sothornDisk quotas for user sothorn (uid 501):  Filesystem blocks soft hard inodes soft hard /dev/hda3 32 4096 5120        9 0 0

Page 65: หนังสือ Linux Advance ภาษาไทย

65

blocks พนททใชงานไปอนนไมตองแกมนจะเชคจากพนททใชงานจรงinode การจำากดการใชงานดวยจำานวนไฟลsoft คอพนท หรอจำานวนไฟล ทใชไดแตจะมขอความเตอนเมอใชพนทถง soft limit

แตยงไมถง hard limithard คนพนท หรอจำานวนไฟล ทจะใชงานไดเกนกวานไมไดอกแลว

ทดสอบโควตาแบบ block[sothorn@banban ~]$ dd if=/dev/zero of=newfile bs=1M count=33+0 records in3+0 records out[sothorn@banban ~]$ dd if=/dev/zero of=newfile bs=1M count=4hda3: warning, user block quota exceeded.4+0 records in4+0 records out[sothorn@banban ~]$ dd if=/dev/zero of=newfile bs=1M count=5hda3: warning, user block quota exceeded.hda3: write failed, user block limit reached.dd: writing `newfile': Disk quota exceeded5+0 records in4+0 records out[sothorn@banban ~]$ 

ทดสอบแบบโควตาแบบ inode Disk quotas for user sothorn (uid 501):  Filesystem blocks soft hard inodes soft hard /dev/hda3 32 0 0         9 40 50

[sothorn@banban ~]$ for i in $(seq 1 50); do  echo ­n "file${i}"; touch file${i} 2>&1;done|less

cannot touch `file42': Disk quota exceededfile43touch: cannot touch `file43': Disk quota exceededfile44touch: cannot touch `file44': Disk quota exceededfile45touch: cannot touch `file45': Disk quota exceededfile46touch: cannot touch `file46': Disk quota exceededfile47touch: cannot touch `file47': Disk quota exceededfile48touch: cannot touch `file48': Disk quota exceededfile49touch: cannot touch `file49': Disk quota exceededfile50touch: cannot touch `file50': Disk quota exceeded

ทดลองสรางไฟล จำานวน 50 ไฟล

Page 66: หนังสือ Linux Advance ภาษาไทย

66

[sothorn@banban ~]$ lsfile1   file12  file15  file18  file20  file23  file26  file29  file31 file34  file37  file4   file5  file8file10  file13  file16  file19  file21  file24  file27  file3   file32 file35  file38  file40  file6  file9file11  file14  file17  file2   file22  file25  file28  file30  file33 file36  file39  file41  file7

[sothorn@banban ~]$ quotaDisk quotas for user sothorn (uid 501):     Filesystem  blocks   quota   limit   grace   files   quota   limit grace      /dev/hda3      36       0       0              50*     40      50[sothorn@banban ~]$

จะเหนวาเราสามารถสรางไดแค 41 ไฟล รวมกบของเดมทมอยแลว (ไฟลซอน 9 ไฟล) เปน 50 ไฟล

ถาเราม user จำานวนมากแลวตองมานง set โควตาใหกบทกคนคงยงยากพอสมควร เราสามารถการ copy โควตาจาก User หนงไปยงอก user หนง ไดถาการจำากดจำานวนโควตาทเทากนedquota -p a b c d e f ... # ทดลองดวย copy โควตา ของ User a ไปยง user b c d e f

Grace Period คอ เวลาทเราใชพนท มาถง soft limit แตไมถง hard limit มาเปนเวลาครบตามกำาหนดโดยท soft limit กจะกลายเปน hard limit จนกวาเราจะลบไฟลออก คาของ graceperiod ถาเราไมกำาหนดคา grace period จะมคา 7 วน คาของ grace period มคาเปน months, weeks, days, hours, minutes และ seconds คำาสงทใชเปลยนแปลงคา grace period คอ edquota -t

### คาง Group Quota ทำาดหรอไม

Page 67: หนังสือ Linux Advance ภาษาไทย

67

บทท 20DNS (Domain Name System)

ระบบชอโดเมน การกำาหนดชอโดเมนใหเครองคอมพวเตอรแทนการใชหมายเลข IP (IP Address) ใหจำางายในการอางองถงคอมพวเตอรทเชอมตอกบเครอขายอนเทอรเนต เชน หมายเลข IP 203.155.110.38 แทนดวยโดเมนชอ linuxsiam.com ซงจะม DNS Server เปนตวใหบรการชอโดเมนซงจดเกบฐานขอมลชอโดเมน และหมายเลขไอพ โดยท DNS Server มโปรแกรม ทมหนาทแปลงชอโดเมนเปนหมายเลข IP และแปลงหมายเลข IP เปนโดเมน เพอตอบคำาถามใหกบเครองลกขายทถามเขามา ตว DNS Server แตละตวไมไดมขอมลครบทงหมด หากลกขายถามมาแลวไมเจอโดเมนนนๆ ตว DNS Server กจะถาม DNS Server ในระดบสงขนไป

โดเมน กลมของคอมพวเตอรบนเครอขายอนเทอรเนตแบงเปนระดบโดยมเครองหมาย . เปนตวคน เชน univercity.ac.th โดยท .th เปนโดเมนสงสด

ในการจดชอโดเมนสามารถทำาไดโดยเขาไปทเวบโฮสตงตางๆ ทรบจดชอและเชาพนท เชน www.keepdomain.com เมอเรากรอกขอมลในขนตอนกรอก DNS Servr เราตองทราบกอนวาเราจะใชพนททไหนทำาเวบททใหเราเชาพนททำาเวบเขากจะม DNS Server ใหอยแลว เชน ของ KSC ns.ksc.co.th. 203.155.33.1 ns2.ksc.co.th. 202.44.144.33 หรอจะเชาพนทกบ Hosting ทรบจดโดเมนเนมเลยกได หรอจดชอแลวจะจดการเรอง DNS เองกลองไปลงทะเบยนท www.zonedit.com

ทกลาวมาเปนเรองของอนเทอรเนตถาเปนอนทราเนตละเราแตตดตง DNS Server ในองคกรเรากสามารถตงชอโดเมนอะไรก ได เพราะ DNS Server เปนของเราเองลนกซโปแกรมทใชทำา DNS Server คอโปแกรม BIND ปจจบนพฒนามาถงเวอรชน 9

ประวตความเปนมาของ BINDBIND (Berkeley Internet Name Domain) โปแกรม BIND ไดพฒนาขนท University of California at

Berkeley เปนโปเจคของนกศกษาปรญญาตร ภายใตการสนบสนนโดย US Defense Advanced Research Projects Administration (DARPA) โปแกรม BIND ตงแตพฒนาจนถงเวอรชน 4.8.3 ไดรบการดแลจาก Computer Systems Research Group (CSRG) ท UC Berkeley ทมพฒนาไดแก Douglas Terry, Mark Painter, David Riggle และ Songnian Zhou

หลงจากนนกไดมการรบชวงการพฒนามาหลายคนหลายองคกร จนปจจบน BIND เวอรชน 9 ซงออกมาเมอเดอนกนยายน ป 2000 ไดรบการสนบสนนการพฒนาจากหนวยงานเหลาน

● Sun Microsystems, Inc.● Hewlett Packard● Compaq Computer Corporation● IBM● Process Software Corporation● Silicon Graphics, Inc.

Page 68: หนังสือ Linux Advance ภาษาไทย

68

● Network Associates, Inc.● U.S. Defense Information Systems Agency● USENIX Association● Stichting NLNet - NLNet Foundation● Nominum, Inc.สามารถดาวนโหลดโปแกรม BIND มาใชงานไดท http://www.isc.org/index.pl?/sw/bind

แตเราไมจำาเปนตองดาวนโหลดมาคอมไพลและตดตงเองลนกซทกคายจะมโปรแกรม BIND มาใหอยแลว

การตดตง BIND บน Red Hatการตดตง DNS Server บน Red Hat สามารถทำาไดโดยใช system-config-packages

รปท xx แสดง

หลงจากตดตงเสรจกใหใชคำาสง chkconfig named on เพอใหเซอรวส named ทำางานตงแตตอนบท

ไฟลและไดเรกทอรทเกยวของ/etc/named.conf เปนไฟลคอนฟกหลกทจะไปเรยกใชไฟลอน/var/named/chroot/var/named เปนไดเรกทอรทเกบไฟลทเรยกใชจาก /etc/named.conf

เปนททเราสรางไฟลทเกยวกบโดเมนไปเกบไว/var/name/name.ca เปนลงคไฟลมาจาก/var/named/chroot/var/named/name.ca

เปนไฟลทเกบ รทเนมเซรฟเวอร ทดแลโดย InterNic

Page 69: หนังสือ Linux Advance ภาษาไทย

69

ขนตอนการคอนฟก1. ตงชอโดเมน2. แกไขไฟล /etc/name.conf3. สรางไฟลทจะเปลยนชอเปน IP Address ใน /var/named/chroot/var/named4. สรางไฟลเปลยน IP Address เปนชอ /var/named/chroot/var/named5. start หรอ restart service named6. แกไฟล /etc/resolv.conf 7. ใช เครองมอในการทดสอบ

ตงชอโดเมนทำาความเขาใจกนกอนนะครบวาเราจะตดตง Server กนภายในหนวยงานของเรา

เพราะฉะนนชอจะซำากบทมอยบนอนเทอรเนตกไมเปนไร เชน mydomain.com, sweetdomain.com จากนไปผมจะขอตงชอโดเมนนวา ourintranet.net

สงทตองการIP Address Role ชอ

192.168.1.1 DNS, Web, Mail ourdomain.net, www.ourdomain.net

192.168.1.2 FTP ftp.ourdomain,net

192.168.1.254 Gateway gateway.ourdomain.net

แกไฟล /etc/named.conf

Page 70: หนังสือ Linux Advance ภาษาไทย

70zone "." IN {        type hint;        file "named.ca";};

zone "localdomain" IN {        type master;        file "localdomain.zone";        allow­update { none; };};

zone "localhost" IN {        type master;        file "localhost.zone";        allow­update { none; };};zone "0.0.127.in­addr.arpa" IN {        type master;        file "named.local";        allow­update { none; };};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {        type master;        file "named.ip6.local";        allow­update { none; };};

zone "255.in­addr.arpa" IN {        type master;        file "named.broadcast";        allow­update { none; };};

zone "0.in­addr.arpa" IN {        type master;        file "named.zero";        allow­update { none; };};

zone "ourintranet.net." IN {        type master;        file "ourintranet.net.db";};

zone "1.168.192.in­addr.arpa." IN {        type master;        file "192.168.1.db";};

ทดสอบไฟล /etc/named.confเราสามารถทดสอบไดวา ไฟล /etc/named.conf ทเราไดเพมเขาไปนนถกตองหรอไมโดยใชคำาสง

named-checkconf ตามดวยไฟล /etc/named.confตวอยางการณทมความผดพลาดเกดขน ถาไมมความผดพลาดกจะไมรายงานอะไรออกมา

Page 71: หนังสือ Linux Advance ภาษาไทย

71

[root@banban named]# named­checkconf  /etc/named.conf/etc/named.conf:30: unknown option 'asdad'/etc/named.conf:31: unexpected token near '}'

ถาไมมขอผดพลาด[root@banban named]# named­checkconf  /etc/named.conf[root@banban named]# 

สรางไฟลทจะเปลยนชอเปน IP Address (ourintranet.net.db) ในทนคอไฟล ourintranet.net.db ซงจะมหนาทในการเปลยนชอเปน IP Address บนลนกซตระกล Red Hat

สรางไฟลนท /var/named/chroot/var/named

$TTL 1H@     IN     SOA     ourintranet.net.    root.ourintranet.net. (     

1     ; Serial 3h    ; Refresh after 3 hours 

                        1h    ; Retry after 1 hour                            1w    ; Expire after 1 week                            1h    ; Negative caching TTL of 1 hour 

  )        NS      ns.ourintranet.net.        IN      MX      10      mail.ourintranet.net.        IN      A       192.168.1.1mail    IN      A       192.168.1.1www     IN      A       192.168.1.1ftp     IN      A       192.168.1.2gateway IN      A       192.168.1.254

สรางไฟลทจะเปลยน IP Address เปนชอ (192.168.1.db)ในทนคอไฟล 192.168.1.db มหนาทในการเปลยน IP Address เปนชอ ทอยของไฟลกทเดยวกนกบไฟล

ourintranet.net.db $TTL 1H@   IN       SOA     ourintranet.net.    root.ourintranet.net. ( 

1     ; Serial 3h    ; Refresh after 3 hours 

                        1h    ; Retry after 1 hour                            1w    ; Expire after 1 week                            1h    ; Negative caching TTL of 1 hour 

  )        IN      NS      ns.ourintranet.net.

1.1.168.192.in­addr.arp.arpa.     IN    PTR    www.ourintranet.net.2.1.168.192.in­addr.arp.arpa.     IN    PTR    ftp.ourintranet.net.254.1.168.192.in­addr.arp.arpa.   IN    PTR    gateway.ourintranet.net.

Page 72: หนังสือ Linux Advance ภาษาไทย

72

อธบายความหมายของคำาตางๆ

TTL Time to Live คาของเวลาของ โซน หรอ โดเมนทจะ cache หรอบนกโดย secondary server

@IN InternetSerialRefresh ระยะเวลาทใชในการรเฟรชขอมลRetry ระยะเวลาทใชในการตรวจสอบขอมลกบ PrimaryExpire ระยะเวลาการหมดอายของขอมล กรณทไมสามารถตดตอเพอขอขอมล (refresh) กบ Primary ไดTTL ระยะเวลาการมชวต (Time to Live)

TypeDescriptionSOA Start of authority

NS Authorized name serverA Host addressCNAME Canonical nameMX Mail server exchangePTR Reverse name pointer#

## restart serviceservice named start | restart

## แกไฟล /etc/resolv.confnameserver 192.168.1.1

Page 73: หนังสือ Linux Advance ภาษาไทย

73

เครองมอในการตรวจสอบเครองมอในการตรวจสอบวาเราสงทเราไดทำาไปถกตองหรอไม

[root@ourintranet  ~]# dig ourintranet.net

; <<>> DiG 9.2.4 <<>> ourintranet.net;; global options:  printcmd;; Got answer:;; ­>>HEADER<<­ opcode: QUERY, status: NOERROR, id: 52458;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:;ourintranet.net.               IN      A

;; ANSWER SECTION:ourintranet.net.        3600    IN      A       192.168.1.1

;; AUTHORITY SECTION:ourintranet.net.        3600    IN      NS      ns.ourintranet.net.

;; Query time: 2 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Thu Sep  7 11:21:41 2006;; MSG SIZE  rcvd: 66

[root@ourintranet  ~]#

[root@ourintranet  ~]# dig www.ourintranet.net

; <<>> DiG 9.2.4 <<>> www.ourintranet.net;; global options:  printcmd;; Got answer:;; ­>>HEADER<<­ opcode: QUERY, status: NOERROR, id: 11585;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:;www.ourintranet.net.           IN      A

;; ANSWER SECTION:www.ourintranet.net.    3600    IN      A       192.168.1.1

;; AUTHORITY SECTION:ourintranet.net.        3600    IN      NS      ns.ourintranet.net.

;; Query time: 2 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Thu Sep  7 11:22:42 2006;; MSG SIZE  rcvd: 70

[root@ourintranet ~]#

Page 74: หนังสือ Linux Advance ภาษาไทย

74

[root@ourintranet ~]# dig ftp.ourintranet.net

; <<>> DiG 9.2.4 <<>> ftp.ourintranet.net;; global options:  printcmd;; Got answer:;; ­>>HEADER<<­ opcode: QUERY, status: NOERROR, id: 62244;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:;ftp.ourintranet.net.           IN      A

;; ANSWER SECTION:ftp.ourintranet.net.    3600    IN      A       192.168.1.2

;; AUTHORITY SECTION:ourintranet.net.        3600    IN      NS      ns.ourintranet.net.

;; Query time: 2 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Thu Sep  7 11:23:47 2006;; MSG SIZE  rcvd: 70

[root@ourintranet ~]#

[root@ourintranet ~]# dig gateway.ourintranet.net

; <<>> DiG 9.2.4 <<>> gateway.ourintranet.net;; global options:  printcmd;; Got answer:;; ­>>HEADER<<­ opcode: QUERY, status: NOERROR, id: 49776;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:;gateway.ourintranet.net.       IN      A

;; ANSWER SECTION:gateway.ourintranet.net. 3600   IN      A       192.168.1.254

;; AUTHORITY SECTION:ourintranet.net.        3600    IN      NS      ns.ourintranet.net.

;; Query time: 2 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Thu Sep  7 11:24:39 2006;; MSG SIZE  rcvd: 74

[root@ourintranet ~]#

Page 75: หนังสือ Linux Advance ภาษาไทย

75

บทท 21Webserver ภายในองคกร

ปจจบนเวบเซรฟเวอรเขามามบทบาทในองคกรมากขน หลายองคกรมเวบเซรฟเวอร เพอใชในการสอสาร ภายใน แลกเปลยนความคดเหนผานเวบบอรด ฯลฯ การทำาเวบเซรฟเวอรเพอใหบรการ ใหบรการเฉพาะไฟล html ไมเพยงพอสำาหรบการใชงาน เวบเซรฟเวอรจะตองทำางานรวมกบภาษา PHP และตดตอฐานขอมลเชน MySQL, PostgreSQL ฯลฯ จงจะถอวาเปนเวบเซรฟเวอรทเพยงพอพรอมใชงานในองคกร

ลนกซ Red Hat จะมโปรแกรมทจะใชงานเปนเวบเซรฟเวอรมาใหเรยบรอยแลว ถาหากยงไมตดตง ตงแตขนตอนตดตงเรากสามารตดตงภายหลง ดวยคำาสง system-config-packages มาดกนวาเราจะตดตงอะไรบาง เรมตนท MySQL ดวย apache+php

การตดตง MySQL บนลนกซตระกล Red Hatถายงไมไดตดตง MySQL กสามารถตดตงไดโดยใช system-config-packages

[root@ourintranet ~]# system-config-packages

กจะไดดงรป

รปท xx แสดงท MySQL Database ถาหากตองการตดตงแพกเกจเพมเตมกใหกด Details เลอกแพกเกจเพมเตมดงรป xx

Page 76: หนังสือ Linux Advance ภาษาไทย

76

เลอกแพกเกจเพมเตมแลว กดปม Close เพอปดหนาตางนไปแลว กดปม Update โปรแกรมจะถามหาแผนตดตงเอง ใสแผนตดตงอพเดทเสรจกถอวาตดตง MySQL เรยบรอยแลว

เรมใชงาน MySQLหลงจากทตดตงเสรจแลวใชคำาสงให MySQL ทำางานตอนบท ดวยคำาสง chkconfig และให service

ของ MySQL ทำางานดวยคำาสง service ชอ service ของ MySQL คอ mysqld [root@ourintranet ~]# chkconfig mysqld on[root@ourintranet ~]# service mysqld startInitializing MySQL database:                               [  OK  ]Starting MySQL:                                            [  OK  ][root@ourintranet ~]#

จะเปนวาถาเราสงให MySQL ทำางานเปนครงแรกกจะมการสรางฐานขอมลตงตนของ MySQL โดยดไดจากขอความ Initializing MySQL database: จะมขอความนครงแรกครงเดยว และ MySQL เรมทำางาน MySQL ทำางานแลวกสามารถทำางานไดแลว

ตงรหสผานใหกบ user root ทจะเขาใชงานฐานขอมลเพอการรกษาความปลอดภยของการเขาถงฐานขอมล มความจำาเปนจะตองตงรหสผานใหกบ user root

ซงเปน user ทจะตดตอฐานขอมล โดยการใชคำาสง mysqladmin -u root password mypassword โดยท mypassword คอ ผาน ตอไปนการตดตอฐานขอมลจะใช user root และรหสผาน คอ mypassword

Page 77: หนังสือ Linux Advance ภาษาไทย

77

[root@ourintranet ~]# mysqladmin ­u root password  mypassword[root@ourintranet ~]# mysql ­u root ­pEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 4 to server version: 4.1.7

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

ออกจากการใชงาน MySQLmysql> \qBye[root@ourintranet ~]

หรอmysql> exitBye[root@ourintranet ~]

การใชงาน user และ password ของ mysql แบบแรก ให mysql ถามรหสผาน

[root@ourintranet ~]# mysql ­u root ­pEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 4 to server version: 4.1.7

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

แบบท 2 ใสรหสผานตอจากออปชน -p [root@ourintranet ~]# mysql ­u root ­pmypasswordWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 7 to server version: 4.1.7

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

ถาใสรหสผานผดกจะมขอความเตอน[root@ourintranet ~]# mysql ­u root ­pEnter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Page 78: หนังสือ Linux Advance ภาษาไทย

78

การสรางฐานขอมล MySQL สรางฐานขอมลใหมและดชอฐานขอมล

[root@ourintranet ~]# mysqladmin create newdb ­u root ­pEnter password:[root@ourintranet ~]# mysql ­u root ­pEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 6 to server version: 4.1.7

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;+­­­­­­­­­­+| Database |+­­­­­­­­­­+| mysql    || newdb    || test     |+­­­­­­­­­­+3 rows in set (0.00 sec)

mysql> \q

การนำาเขาฐานขอมล และ backup ฐานขอมลนำาเขาฐานขอมลจากไฟลดวย mysql newdb < /path/to/file.sql ­u root ­p

[root@ourintranet ~]# mysql newdb < /root/file.sql ­u root ­pEnter password:

Backup ฐานขอมลดวยคำาสง dump[root@ourintranet ~]#  mysqldump dbname > /root/file_backup.sql ­u root ­pEnter password:

การเปลยน password ของ user root ทใชงานฐานขอมล MySQLกำรการเปลยนรหสผาน user root ของ MySQL แบบนทานตองจำารหสผานเดมได

โดยการใชคำาสงเหลาน[root@ourintranet ~]# mysql ­u root ­poldpasswordmysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword‘);

หรอ[root@ourintranet ~]# mysql ­u root ­poldpasswordmysql> UPDATE mysql.user SET Password = PASSWORD('newpassword‘) WHERE User = 'root';mysql> FLUSH PRIVILEGES;

ถงตอนน MySQL กพรอมใชแลวมาดกนตอวา จะให apache + PHP รจก MySQL ไดอยางไร

Page 79: หนังสือ Linux Advance ภาษาไทย

79

การตดตง Web Server + PHP การตดตงเวบเซรฟเวอรจาก Package ลองลนกซตระกล Red Hat ใหใช system-config-packages

จะดกวาใชคำาสง rpm เนองจากม package ทขนตอกนมาก[root@ourintranet ~]# system­config­packages

กด Details เลอก Package

รปท xx

Page 80: หนังสือ Linux Advance ภาษาไทย

80

รปท xx

เราจะใชงาน PHP ดวยเพราะฉะนนอะไรทเกยวของกเลอกไปเถอะครบเกนดกวาขาด มนไมไดกนพนทมากดวย เลอกเสรจกดปม Close แลว Update โปรแกรมจะถามหาแผนตดตงเองหลงจากตดตงเสรจใหใชคำาสง[root@ourintranet ~]# chkconfig httpd on

เพอให httpd ทำางานทกครงทเปดเครองให httpd ทำางาน[root@ourintranet ~]# service httpd start

หรอ[root@ourintranet ~]# /etc/init.d/httpd start

สงทตองทราบ/var/www/html คอ ไดเรคทอรทเราเอาไฟล .html หรอ .php ไปเกบไว หรอเรยกวา Document root/etc/httpd/conf/httpd.conf ไฟล config ของ Web Server

Page 81: หนังสือ Linux Advance ภาษาไทย

81

ทดสอบการทำางานของ Web Server และ PHP ทำางานหรอไมใหเปดโปรแกรม Browser Mozilla หรอ Firefox

แลวเรยก URL http://www.ourintranet.com หรอ http://localhost ของเครอง ถาเปดหนา Default Page ขนมาได กแสดงวา Web Server ทำางานแลว

ทดลองใชงาน SERVERAddDefaultCharset UTF-8#AddDefaultCharset TIS-620

ทดสอบการทำางานของ PHPสรางไฟล phpinfo.php โดยมเนอความขางในไฟล

<?phpphpinfo();?>

แลวนำาไฟล phpinfo.php ไปไวท /var/www/html

Page 82: หนังสือ Linux Advance ภาษาไทย

82

สงทควรระวงถายงไมเขาใจเกยวกบการทำางานของ Firewall มากนกกใหปดการทำางานของ Firewall ไปกอน โดยใชคำาสง

[root@ourintranet ~]# system­config­securitylevel

รปท xx

ให Disable firewall และ SELinux ไปกอนแลวคอยมาศกษาเรอง Filewall กนทหลงดงรป xxหรอจะใชคำาสง[root@ourintranet ~]# chkconfig iptables off[root@ourintranet ~]# service  iptables stop

Page 83: หนังสือ Linux Advance ภาษาไทย

83

ทดสอบการทำางานกบ PHP กบ MySQLสรางไฟล connect.php ไวท /var/www/html โดยมเนอความดงน

<?php$link = mysql_connect('localhost', 'root', 'mypassword');if (!$link) {    die('Could not connect: ' . mysql_error());}echo 'Connected successfully';mysql_close($link);?>

ทดสอบการทำางานการตอตอฐานขอมลดวย Browserถาหากไมสามารถตดตอฐานขอมลไดกระรายงาน error ขนมาดงรป XX

รปท xx แสดงการตดตอฐานขอมล MySQL ดวย PHP

ถา php สามารถตดตอฐานขอมลไดกจะแสดงขอความ Connected successfully ออกมาดงรป XX

รปท xx แสดงการตดตอฐานขอมล MySQL ดวย PHP

ถาหากวาเราสามารถตดตอฐานขอมลดวย username และ password ทเราตงเอาไวเรากสามารถตดตง โปรแกรมอนๆ ทเขยนดวยภาษา PHP และใชฐานขอมล MySQL ไดแลว

Page 84: หนังสือ Linux Advance ภาษาไทย

84

การตดตง phpMyAdminphpMyAdmin เปนโปแกรมทเขยนดวยภาษา PHP ใหสำาหรบจดการฐานขอมล MySQL

โดยทเราไมตองใชคำาสง ทำางานผาน Web Browser ดาวนโหลดมาตดตงไดจาก http://www.phpmyqdmin.net

รปท xx แสดงเวบ www.phpmyadmin.net

ไฟลทดาวนโหลดมา จะมชอ phpMyAdmin-version.tar.gz เชน phpMyAdmin-2.8.2.4.tar.gz เมอไดไฟลมาใหเอาไปไวท /var/www/html แลวขยายไฟลออกมา จะไดไดเรกทอร phpMyAdmin-2.8.2.4[root@ourintranet html]# tar xvfz phpMyAdmin­2.8.2.4.tar.gz  phpMyAdmin­2.8.2.4/phpMyAdmin­2.8.2.4/Documentation.txtphpMyAdmin­2.8.2.4/CREDITSphpMyAdmin­2.8.2.4/ChangeLogphpMyAdmin­2.8.2.4/Documentation.htmlphpMyAdmin­2.8.2.4/INSTALL...[root@ourintranet html]# lsphpMyAdmin­2.8.2.4  phpMyAdmin­2.8.2.4.tar.gz

เพอความสะดวกในการใชงานใหเปลยนชอ ไดเรกทอรใหสนลง

[root@ourintranet html]# mv phpMyAdmin­2.8.2.4 phpMyAdmin

Page 85: หนังสือ Linux Advance ภาษาไทย

85

ทดลองทดสอบการทำางานจาก Browserhttp://www.ourintranet.net/phpMyAdmin/

รปท xx จากรปจะเหนวายงไมสามารถตดตอฐานขอมลได ใหเขาไปทำางานทไดเรกทอร phpMyAdmin/libraries

เพอแกไขไฟล config.default.php แกไฟลดวย vi หรอ text editor ททานถนด[root@ourintranet html]# cd phpMyAdmin/libraries[root@ourintranet libraries]# vi config.default.php

ใหคาตวแปรของ $cfg['PmaAbsoluteUri'] $cfg['PmaAbsoluteUri'] = 'http://www.ourintranet.net/phpMyAdmin/';

ถาเราไมไดทำา DNS server บรรทดนเปน$cfg['PmaAbsoluteUri'] = 'http://192.168.1.1/phpMyAdmin/';

หรอ$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin/';

ใหคาตวแปรของ auth_type user และ password auth_type ม 2 แบบคอ config กบ http ถาเลอกแบบ config โปรแกรมจะอานคา username และ password จากไฟลคอนฟกน http โปรแกรมจะถาม username และ password กอน user user ทจะตดตอฐานขอมล MySQLpassword รหสผาน ของผใชงานทจะตดตอฐานขอมล

เชน $cfg['Servers'][$i]['auth_type']     = 'config';     $cfg['Servers'][$i]['user']          = 'root';     $cfg['Servers'][$i]['password']      = 'mypassword';  

Page 86: หนังสือ Linux Advance ภาษาไทย

86

ถา username และ password ถกตองกจะเขาใชงานไดเลย

รป xxx แสดง

ถากรณทไฟลคอนฟกเปนแบบน

$cfg['Servers'][$i]['auth_type']     = 'http';     $cfg['Servers'][$i]['user']          = 'root';     $cfg['Servers'][$i]['password']      = '';  

เมอเราเรยกใชงานโปแกรมกจะถามผใชงานและรหสผานกอน

รป xxxถาชอผใชและรหสผานถกตองกจะเขาใชงานไดดงรป xxx

การตดตง phpPgAdminphpPgadmin เปนโปรแกรมทเขยนดวยภาษา PHP เชนเดยวกนกบ phpMyAdmin แต phpPgAdmin

เปนเครองมอใชสำาหรบจดการฐานขอมล PostgreSQL ผานทางเวบ สามารถดาวนโหลดมาใชงานไดท

Page 87: หนังสือ Linux Advance ภาษาไทย

87

http://phppgadmin.sourceforge.net

ไฟลทดาวนโหลดมา phpPgAdmin-4.0.1.tar.gz เอาไปไวทไดเรคทอร /var/www/html แลวขยายไฟลออกมา จะได ไดเรกทอร phpPgAdmin-4.0.1 ใหเปลยนชอเปน phpPgAdmin เพอความสะดวกในการใชงาน[root@ourintranet ~]# lsphpPgAdmin­4.0.1.tar.gz[root@ourintranet ~]# cp phpPgAdmin­4.0.1.tar.gz /var/www/html/[root@ourintranet ~]# cd /var/www/html/[root@ourintranet html]# tar xvfx phpPgAdmin­4.0.1.tar.gzphpPgAdmin­4.0.1/phpPgAdmin­4.0.1/CREDITSphpPgAdmin­4.0.1/classes/...[root@ourintranet html]# mv phpPgAdmin­4.0.1 phpPgAdmin

ทดสอบการใชงานโดยการเรยกผาน Browser http://www.ourintranet.net/phpPgAdminจะเหนวาเราไมสามารถ login เขาใชงานได มขอความเตอน Login disallowed for security reasons.

Page 88: หนังสือ Linux Advance ภาษาไทย

88

ตองมการแกไฟล config กอน[root@ourintranet html]# mv phpPgAdmin­4.0.1 phpPgAdmin[root@ourintranet html]# cd phpPgAdmin/conf[root@ourintranet conf]# lsconfig.inc.php  config.inc.php­dist[root@ourintranet conf]# vi config.inc.php

ใหคาตวแปร $conf['servers'][0]['host']   เปน localhost

 // Hostname or IP address for server.  Use '' for UIX domain socket. // use 'localhost' for TCP/IP connection on this computer        $conf['servers'][0]['host'] = 'localhost';

ใหคาตวแปร $conf['extra_login_security']   เปน false

// If extra login security is true, then logins via phpPgAdmin with no // password or certain usernames (pgsql, postgres, root, administrator) // will be denied. Only set this false once you have read the FAQ and // understand how to change PostgreSQL's pg_hba.conf to enable // passworded local connections.        $conf['extra_login_security'] = false;

ทดลอง

Page 89: หนังสือ Linux Advance ภาษาไทย

89

การตดตง phpNukeThaiphpNuke เปนโปรแกรม Content Management System ทไดรบความนยมเอามาทำาเวบไซตมากตวหนง

สามารถดาวนโหลดไดท http://www.phpnuke.org/ เนองจากไดรบความนยมมากคนไทยเรา ไดเอามาพฒนาเพมเตมใสระบบภาษาไทยเขาไปซงดาวนโหลดไดท http://www.thainuke.org

รปท xxx แสดงเวบไซต www.thainuke.org

ไฟลทเราดาวนโหลดมาเปนเวอรชน 7.8 ชอไฟล PHP-Nuke-7.8-Thai-Edition.zip ขยายไฟลดวยคำาสง unzip[root@ourintranet ~]# unzip PHP­Nuke­7.8­Thai­Edition.zip  Archive:  PHP­Nuke­7.8­Thai­Edition.zip  creating: PHP­Nuke­7.8­Thai­Edition/docs/  inflating: PHP­Nuke­7.8­Thai­Edition/docs/Addons­Modules.txt...[root@ourintranet ~]# cd PHP­Nuke­7.8­Thai­Edition[root@ourintranet PHP­Nuke­7.8­Thai­Edition]# lsdocs  html  README­THAI.txt  sql  upgrades[root@ourintranet PHP­Nuke­7.8­Thai­Edition]# cp ­r html /var/www/html/nuke[root@ourintranet PHP­Nuke­7.8­Thai­Edition]# cd sql[root@ourintranet PHP­Nuke­7.8­Thai­Edition]# cd sql[root@ourintranet sql]# lsnuke.sql[root@ourintranet sql]#

[root@ourintranet sql]# mysqladmin create nuke ­u root ­pmypassword[root@ourintranet sql]# mysql nuke <nuke.sql ­u root ­pmypassword[root@ourintranet sql]# cd /var/www/html/nuke[root@ourintranet nuke]# vi config.php

Page 90: หนังสือ Linux Advance ภาษาไทย

90

$dbhost = "localhost";$dbuname = "root";$dbpass = "mypassword";$dbname = "nuke";$prefix = "nuke";$user_prefix = "nuke";$dbtype = "MySQL";$sitekey = "S∙kQSd5%W@Y62­dm29­.­39.3a8sUf+W9";$gfx_chk = 0;$subscription_url = "";$admin_file = "admin";$tipath = "images/topics/";$advanced_editor = 1;$display_errors = false;$autoActivate = TRUE;

หลงจากแกไฟล Config เสรจ กใหเปด Browser จากเครอง Client หรอจากเครอง Server ด โดบเรยก URLhttp://www.ourintranet.net/nuke/ ถาเกดความผดพลาดในไฟลคอนฟก เชน password ชอฐานขอมลไมถก กจะเจอขอความ ดงรป ...

รปท xx แสดง

Page 91: หนังสือ Linux Advance ภาษาไทย

91

ถาคาคอนฟกถกตองกจะเหนดงรป xx

รปท xx แสดง

การเขาทำางานหนา Admin โดยการเรยก http://www.ourintranet.net/nuke/admin.php ถาเปนการเขาหนา Admin ครงแรก

รปท xx

Page 92: หนังสือ Linux Advance ภาษาไทย

92

รปท xxกจะเขาสหนาตางของ Admin

Page 93: หนังสือ Linux Advance ภาษาไทย

93

การตดตง Coppermine Photo GalleryCoppermine Photo Gallery เปนโปรแกรมสำาหรบจดเกบภาพ ซงมความสามารถมากตวหนง

พฒนาดวยภาษา PHP ใช GD library หรอ ImageMagicklibary (ในทนจะใช GD library ) และ MySQL เปนฐานขอมล ดาวนโหลดมาตดตงไดจาก http://coppermine-gallery.net/

การตดตงอยางทไดบอกไปแลววา Coppermine Photo Gallery ใช GD library เราตองตดตงกอน ถาเปน Red Hat

Enter Prise 4 package php-gd อยในแผนตดตงแผนท 4[root@ourintranet ~]# cd /media/cdrom/RedHat/RPMS/[root@ourintranet RPMS]# ls php*php­devel­4.3.9­3.1.i386.rpm   php­mbstring­4.3.9­3.1.i386.rpmphp­domxml­4.3.9­3.1.i386.rpm  php­ncurses­4.3.9­3.1.i386.rpmphp­gd­4.3.9­3.1.i386.rpm      php­snmp­4.3.9­3.1.i386.rpmphp­imap­4.3.9­3.1.i386.rpm    php­xmlrpc­4.3.9­3.1.i386.rpm[root@ourintranet RPMS]# rpm ­Uvh php­gd­4.3.9­3.1.i386.rpmwarning: php­gd­4.3.9­3.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60ePreparing...        ########################################### [100%]

1:php­gd           ########################################### [100%][root@ourintranet RPMS]# service httpd restartStopping httpd:                                            [  OK  ]Starting httpd:                                            [  OK  ][root@ourintranet RPMS]#

Page 94: หนังสือ Linux Advance ภาษาไทย

94

ไฟลทดาวนโหลดมาชอไฟล cpg1.4.9.zip ตองแตกไฟลออกมากอน ดวยคำาสง unzip แลวยายไดเรคทอรทไดไปไวท root document ของเวบดงตวอยาง[root@ourintranet ~]# unzip cpg1.4.9.zipArchive:  cpg1.4.9.zip   creating: cpg149/  inflating: cpg149/addfav.php  inflating: cpg149/addpic.php...[root@ourintranet ~]# mv cpg149 /var/www/html/cpg[root@ourintranet ~]# cd /var/www/html/cpg/[root@ourintranet cpg]#

ทดลองเรยกใชงานจาก Browser http://www.ourintranet.net/cpg/ กจะมขอความ error ขนมาและมคำาแนะนำาใหเราทำาตอ สงทมปญหาตอนนคอ permission ของไดเรคทอรไมถก

ใหใชคำาสงเปลยน permission ของไดเรคทอรดงน

[root@ourintranet cpg]# chmod 777  include[root@ourintranet cpg]# chmod 777  albums[root@ourintranet cpg]# chmod 777  albums/userpics[root@ourintranet cpg]# chmod 777  albums/edit[root@ourintranet cpg]#

แลวกลบมาทหนาตางการตดตงอกครงหนง กด Reload / Refresh ท Browser อกครงหนง กจะ

Page 95: หนังสือ Linux Advance ภาษาไทย

95

รปท xxกด Try again กจะเขาสขนตอนการตดตง แตกอนทจะทำาอะไรตอใหไปสรางฐานขอมลกอน

[root@ourintranet cpg]# mysqladmin create cpg149 ­u root ­pmypassword

กรอกรายละเอยด

Page 96: หนังสือ Linux Advance ภาษาไทย

96

รปท xxกรอกรายละเอยดเรยบรอยแลว กดปม Let's Go สำาหรบ ImageMagick path เวนวางไวไดเพราะเราไมไดใช

รปท xx แสดง

Page 97: หนังสือ Linux Advance ภาษาไทย

97

รปท xx แสดง

การตดตง Drupal

Page 98: หนังสือ Linux Advance ภาษาไทย

98

Drupal เปน Content Management system (CMS) ทนาสนใจอกตวหนง ซงมความสามารถทางดาน weblog ดวย ดาวนโหลดไดท http://www.drupal.org

รปท xxไฟลทเราดาวนโหลดมาชอไฟล drupal-4.7.3.tar.gz

[root@ourintranet ~]# tar xvfz drupal­4.7.3.tar.gz  |moredrupal­4.7.3/drupal­4.7.3/database/drupal­4.7.3/database/database.4.0.mysql...[root@ourintranet ~]# mv drupal­4.7.3 /var/www/html/drupal

ถาเราจะทดลองดวา Drupal มโปแกรมสำาหรบตดตงหรอไม http://www.ourintranet.net/drupal

รปท xx แสดงวา Drupal ไมมโปรแกรมสำาหรบตดตงเราตองทำาการตดตงเองทงหมด

เรมแรกเราตองสรางฐานขอมล และนำาเขาฐานขอมล

Page 99: หนังสือ Linux Advance ภาษาไทย

99

[root@ourintranet ~]# cd /var/www/html/drupal/[root@ourintranet drupal]# lsCHANGELOG.txt  index.php          LICENSE.txt      scripts UPGRADE.txtcron.php       INSTALL.mysql.txt  MAINTAINERS.txt  sites xmlrpc.phpdatabase       INSTALL.pgsql.txt  misc             themesincludes       INSTALL.txt        modules          update.php[root@ourintranet drupal]# cd database/[root@ourintranet database]# lsdatabase.4.0.mysql  database.4.1.mysql  database.pgsql  updates.inc[root@ourintranet database]# mysqladmin create drupal ­u root ­pmypassword[root@ourintranet database]# mysql drupal <database.4.1.mysql ­u root ­pmypassword[root@ourintranet database]#

แก ไฟล Config [root@ourintranet database]# cd ../sites/default/[root@ourintranet default]# vi settings.php

$db_url = 'mysql://username:password@localhost/databasename';

แกเปน$db_url = 'mysql://root:mypassword@localhost/drupal';

รปท xx เปนอนวาเราตดตง Drupal สำาเรจนะครบ

Page 100: หนังสือ Linux Advance ภาษาไทย

100

บทท 22Postfix Mail Server

การทำางานของ postgfixการตดตง

โดยปกตด Red Hat หรอ Fedora จะมโปรแกรมทเปน MTA มาใหอยแลวนนกคอ sendmail เราสามารถตดตง postfix เขาไปไดเลยโดยทไมตองเอา sendmail ออก ถาหากเรายงไมไดตดตง Postfix ตงแตขนตอนการตดตงเรากสามารถใหคำาสง [root@ourintranet ~]# system-config-packages

Page 101: หนังสือ Linux Advance ภาษาไทย

101

Page 102: หนังสือ Linux Advance ภาษาไทย

102

ตดตงเสรจservice postfix start

แกไฟล config /etc/postfix/main.cf

myhostname = ourintranet.netmydestination = ourintranet.net, localhostinet_interfaces = all

สวนคาอนๆ ปลอยใหเปนคาปกตservice postfix restart

ไปทลนกซเครองอน ทดลองสง mail ไปยงเครอง ourintranet.netแกไฟล /etc/resolv.confnameserver 192.168.1.1

root@sothorn:~# mail [email protected]: Test MailTest Mail to ourintranet.netCc: root@sothorn:~# tail ­f /var/log/maillogNov  2 16:04:59 sothorn postfix/pickup[5780]: 70688A7D51: uid=0 from=<root>Nov  2 16:04:59 sothorn postfix/cleanup[5796]: 70688A7D51: message­

Page 103: หนังสือ Linux Advance ภาษาไทย

103

id=<[email protected]>Nov  2 16:04:59 sothorn postfix/qmgr[5781]: 70688A7D51: from=<[email protected]>, size=311, nrcpt=1 (queue active)Nov  2 16:04:59 sothorn postfix/smtp[5798]: 70688A7D51: to=<[email protected]>, relay=mail.ourintranet.net[192.168.1.1]:25, delay=0.21, delays=0.07/0.01/0.08/0.05, dsn=2.0.0, status=sent (250 Ok: queued as 07E6FC81E3)Nov  2 16:04:59 sothorn postfix/qmgr[5781]: 70688A7D51: removed

กลบมาทเครอง ourintranet.net[root@ourintranet ~]# tail ­f /var/log/maillogNov  2 16:10:29 ourintranet postfix/smtpd[3388]: connect from unknown[192.168.1.2]Nov  2 16:10:30 ourintranet postfix/smtpd[3388]: 07E6FC81E3: client=unknown[192.168.1.2]Nov  2 16:10:30 ourintranet postfix/cleanup[3391]: 07E6FC81E3: message­id=<[email protected]>Nov  2 16:10:30 ourintranet postfix/qmgr[2555]: 07E6FC81E3: from=<[email protected]>, size=490, nrcpt=1 (queue active)Nov  2 16:10:30 ourintranet postfix/smtpd[3388]: disconnect from unknown[192.168.1.2]Nov  2 16:10:30 ourintranet postfix/local[3392]: 07E6FC81E3: to=<[email protected]>, relay=local, delay=0, status=sent (delivered to mailbox)Nov  2 16:10:30 ourintranet postfix/qmgr[2555]: 07E6FC81E3: removed

เปนอนวาตดตง mail server เรยบรอย

Page 104: หนังสือ Linux Advance ภาษาไทย

104

[root@ourintranet ~]# chkconfig dovecot on[root@ourintranet ~]# service dovecot startการตดตง squirrelmail

squirerlmail เปนโปแกรมเวบเมลทเขยนดวย PHP ทตดตงงายมากตวหนง ดาวนโหลดไดท http://www.squirrelmail.org/ ไฟลทดาวนโหลดมา[root@ourintranet ~]# tar xvfz squirrelmail­1.4.8.tar.gz squirrelmail­1.4.8/squirrelmail­1.4.8/ChangeLogsquirrelmail­1.4.8/AUTHORS..[root@ourintranet ~]# mv squirrelmail­1.4.8 /var/www/html/squirrelmail[root@ourintranet ~]#  cd /var/www/html/squirrelmail/conf[root@ourintranet conf]# cp config_default.php config.php$provider_uri = 'http://www.ourintranet.net/';$domain = 'ourintranet.net';[root@ourintranet conf]# chmod 777 /var/www/html/squirrelmail/data 

ทดลองดวยการเปด Browser แลวเรยก URL http://www.ourintranet.net/squirrelmail/

Page 105: หนังสือ Linux Advance ภาษาไทย

105

รปท xx

ถา Login สำาเรจ

รปท xx

Page 106: หนังสือ Linux Advance ภาษาไทย

106

บทท 23NFS Server

Network File System (NFS) พฒนาโดย Sun Microsystems ในป 1984 เปนโปรโตคอลทอนญาตใหคอมพวเตอรเขาถงไฟลและไดเรกทอรของเครองอนผานเนตเวอรคโดยทใชงงานงายเหมอนใชอยบนฮารดดสกของตวเอง

การตดตง NFS Serverลนกซ Red Hat หลงจากทเราตดตงตามปกตกสามารถใชงาน NFS ไดเลยเพราะ NFS

มาพรอมกบเคอรเนลอยแลว การทจะใชงาน NFS จำาเปนตองเปดเซอรวส portmap ดวยเพราะตองใชงาน

Page 107: หนังสือ Linux Advance ภาษาไทย

107

[root@ourintranet ~]# chkconfig portmap on[root@ourintranet ~]# service portmap startStarting portmap:                                          [  OK  ][root@ourintranet ~]# chkconfig nfs on[root@ourintranet ~]# service nfs startStarting NFS services:                                     [  OK  ]Starting NFS quotas:                                       [  OK  ]Starting NFS daemon:                                       [  OK  ]Starting NFS mountd:                                       [  OK  ][root@ourintranet ~]#                                      [  OK  ]

ถาไดอยางนแลว NFS Server พรอมใชงานแลว แตเรายงไมไดแชรไดเรกทอรใหเครองลกขายเขามาใชงาน ไฟลทจะแชรไดเรคทอรคอ /etc/exports โดยมการแชรไฟล เชน/var/ftp/pub 192.168.1.0/255.255.255.0(ro,sync,no_root_squash)

/var/ftp/pub ไดเรคทอรทตองการแชร192.168.1.0/255.255.255.0 เครองลกขาย ชอเครอง หรอ IP Address ทอนญาตใหเขาใชงานoptions อนๆ rw ใหสามารถอานเขยนไฟลไดro อานไดอยางเดยว เขยนไมไดsync ใหเขยนไฟลลงดสกสำาเรจกอนแลวคอยรายงานผลall_squash กำาหนดใหทกคนทเขามาขอใชไฟล มสทธเปน anonymousroot_squash กำาหนดใหถา root เขามาขอใชไฟลมสทธเปน anonymousno_root_squash กำาหนดใหถา root เขามาใชไฟลกมสทธเปน root anonuid=uid กำาหนดใหใครกตามทเขามาใชไฟล จะมสทธเทากบ uid ทกำาหนดanongid=gid กำาหนดใหใครกตามทเขามาใชไฟล จะมสทธเทากบ gid ทกำาหนดno_wdelay xxx

หลงจากทเราแกไฟล /etc/exports เรยบรอยแลวเรากตอง restart serice ของ NFS กอน[root@ourintranet ~]# service nfs restartShutting down NFS mountd:                                  [  OK  ]Shutting down NFS daemon:                                  [  OK  ]Shutting down NFS quotas:                                  [  OK  ]Shutting down NFS services:                                [  OK  ]Starting NFS services:                                     [  OK  ]Starting NFS quotas:                                       [  OK  ]Starting NFS daemon:                                       [  OK  ]Starting NFS mountd:                                       [  OK  ][root@ourintranet ~]#                                      [  OK  ]

หลงจากนนกทดสอบดวา ไดเรคทอรทเราแชรเอาไวใชงานไดหรอเปลา ถาไดขอความดงดานลางนกแสดงวา NFS Server ของเราพรอมใชงาน ใหลกขายตดตอเขามาไดแลว

Page 108: หนังสือ Linux Advance ภาษาไทย

108

[root@ourintranet ~]# exportfs/var/ftp/pub    192.168.1.0/255.255.255.0[root@ourintranet ~]#[root@ourintranet ~]# showmount ­e 192.168.1.1Export list for localhost:/var/ftp/pub 192.168.1.0/255.255.255.0

NFS Clientคราวนมาถงเครองลกขายทจะขอไปใชงานไฟลและไดเรคทอรบนเครอง server

กนบางครบวาจะตองทำาอยางไรไปรแกรมทเกยวกบ NFS Client กมมาแลวเชนกนสงทเราจะใชกใชคำาสง mount เชนเดยวกบการ mount อปกรณซงไดกลาวไปแลวในบทท xx

ตวอยางการ mount [root@ourintranet ~]# mkdir /mnt/nfs[root@ourintranet ~]# mount 192.168.1.1:/var/ftp/pub /mnt/nfs

การ mount nfs แบบถาวรการเมาทแบบถาวรคอ การทเปดเครองขนมาใหไดเรกทอรทแชรอยกจะถก mount โดยอตโนมต

โดยทเราไมตองใชคำาสง mount ไฟลทเกยวของกบเรองนคอ /etc/fstab รายละเอยดของ /etc/fstab กไดพดถงในบทท xx แลวซงจะไมพดอก แตจะยกตวอยางการเมาท

192.168.1.1:/var/ftp/pub /mnt/nfs nfs defaults 0 0

บทท 24DHCP Server

Dynamic Host Configuration Protocol (DHCP) เปนโปรโตคอลทใชในเครอขายคอมพวเตอร ททำางานแบบ Client - Server โดยเครองคอมพวเตอรลกขายจะทำาการรองขอขอมลทจำาเปน ในการเขารวมเครอขายจากแมขาย ซงขอมลเหลานรวมถง IP Address, Subnet masks, Gateway หรอ อนๆ ทจำาเปนตองใชภายในเครอขาย ซงคอมพวเตอรแมขายเปนฝายกำาหนดใหกบลกขาย เมอลกขายมการรองขอเขามา

เซรฟเวอร DHCP มวธการจายหมายเลขไอพ 3 วธดงน

• กำาหนดดวยตนเอง ผบรหารระบบเครอขายเปนผกำาหนดหมายเลขไอพทตองการใชสำาหรบเครองลกขาย

Page 109: หนังสือ Linux Advance ภาษาไทย

109

โดยใชวธเทยบกบ MAC Address• แบบอตโนมต เซรฟเวอร DHCP จะจายหมายเลขไอพทวางอยใหกบลกขายโดยอตโนมต

ซงจะใชหมายเลขไอพชวงทผบรหารระบบกำาหนดใหใชได ไอพทจายจะถกใชอยางถาวร • แบบไดนามก วธนเปนวธเดยวทสามารถนำาหมายเลขไอพมาใชซำาได

เมอคอมพวเตอรถกเปดเครองและเรมทำางาน เครองลกขายจะขอหมายเลขไอพจากเซรฟเวอรโดยอตโนมต วธนตางกบแบบอตโนมตตรงทหมายเลขไอพในการทำางานแตละครง ไมจำาเปนตองเปนเลขเดม

การตดตง DHCP Serverโปรแกรมททำาหนาทเปน DHCP Server ดาวนโหลดและศกษาเพมเตมไดจาก http://www.isc.org/sw/dhcp/

แต DHCP Server มมากบลนกซ Red Hat อยแลวถายงไมไดตดตงตงแตแรก กสามารถตดตงเพมเตมได ดวยการใช system-config-package

[root@ourintranet ~]# system­config­packages

จะไดดงรป

รปท 24-1 แสดงเลอก Network Server คลก Detail เพอตดตงแพกเกจ DHCP คลกเลอก

Page 110: หนังสือ Linux Advance ภาษาไทย

110

รปท 24-2แลวกดปม Close

รปท 24-3

กด Continue โปรแกรมจะถามหาแผนตดตง Red Hat Linux เอง

Page 111: หนังสือ Linux Advance ภาษาไทย

111

รปท 24-5 แสดงใสแผนตดตงแลวกด OK

รปท 24-5 แสดงตดตงเสรจแลวกด OK เปนอนวาเราตดตง DHCP Server สำาเรจแลว

Page 112: หนังสือ Linux Advance ภาษาไทย

112

หลงจากทเราตดตงเสรจแลว DHCP Server ยงไมพรอมทจะทำางาน สงทตองทำาตอไปคอ ให DHCP Server ทำางาน ตงแตตอนบทโดยใชคำาสง

[root@ourintranet ~]# chkconfig dhcpd on

DHCP Server ทเราตดตงไปแลวไมม คอนฟกไฟลมาให ถาสงให service ทำางานตอนนเลยกทำาไมได ตองลองหาดกอนวา DHCP มมาใหหรอเปลาโดยการดวาใน package dhcp มไฟลอะไรอยบาง[root@ourintranet ~]# rpm ­ql dhcp/etc/rc.d/init.d/dhcpd/etc/rc.d/init.d/dhcrelay/etc/sysconfig/dhcpd/etc/sysconfig/dhcrelay/usr/bin/omshell/usr/sbin/dhcpd/usr/sbin/dhcrelay/usr/share/doc/dhcp­3.0.1/usr/share/doc/dhcp­3.0.1/README/usr/share/doc/dhcp­3.0.1/RELNOTES/usr/share/doc/dhcp­3.0.1/dhcpd.conf.sample/usr/share/man/man1/omshell.1.gz/usr/share/man/man5/dhcp­eval.5.gz/usr/share/man/man5/dhcpd.conf.5.gz/usr/share/man/man5/dhcpd.leases.5.gz/usr/share/man/man8/dhcpd.8.gz/usr/share/man/man8/dhcrelay.8.gz/var/lib/dhcp/var/lib/dhcp/dhcpd.leases[root@ourintranet ~]# 

มไฟลตวอยางมาใหคอไฟล dhcpd.conf.sample ให copy ไปไวท /etc แลวเปลยนชอเปน dhcpd.conf

[root@ourintranet ~]# cp /usr/share/doc/dhcp­3.0.1/dhcpd.conf.sample /etc/dhcpd.conf

แลวจงแกไฟลคอนฟกดวย Texteditor ทถนด

Page 113: หนังสือ Linux Advance ภาษาไทย

113

ddns­update­style interim;ignore client­updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

# ­­­ default gateway        option routers                  192.168.0.1;        option subnet­mask              255.255.255.0;

        option nis­domain               "domain.org";        option domain­name              "domain.org";        option domain­name­servers      192.168.1.1, 203.155.33.1;

        option time­offset              ­18000; # Eastern Standard Time#       option ntp­servers              192.168.1.1;#       option netbios­name­servers     192.168.1.1;# ­­­ Selects point­to­point node (default is hybrid). Don't change this #unless# ­­ you understand Netbios very well#       option netbios­node­type 2;

        range dynamic­bootp 192.168.0.128 192.168.0.254;        default­lease­time 21600;        max­lease­time 43200;

        # we want the nameserver to appear at a fixed address        host ns {                next­server marvin.redhat.com;                hardware ethernet 12:34:56:78:AB:CD;                fixed­address 207.175.42.254;        }}

เปลยนคาของคอนฟกไฟลตามความตองการใชงานของเราซงสวนใหญสงทเราเปลยนกคอ IP Address เปลยนใหตรงกบทเราใชงานอย เชน

Page 114: หนังสือ Linux Advance ภาษาไทย

114

ddns­update­style interim;ignore client­updates;

subnet 192.168.1.0 netmask 255.255.255.0 {

# ­­­ default gateway        option routers                  192.168.1.254;        option subnet­mask              255.255.255.0;

        option nis­domain               "ourintranet.net";        option domain­name              "ourintranet.net";        option domain­name­servers      192.168.1.1;        

        option time­offset              ­18000; # Eastern Standard Time#       option ntp­servers              192.168.1.1;#       option netbios­name­servers     192.168.1.1;# ­­­ Selects point­to­point node (default is hybrid). Don't change this #unless# ­­ you understand Netbios very well#       option netbios­node­type 2;

        range dynamic­bootp 192.168.1.101 192.168.0.253;        default­lease­time 21600;        max­lease­time 43200;

        host computer1 {                hardware ethernet 00:13:72:17:E7:65;                fixed­address 207.175.42.254;        }}

ถาตองการการจาย IP Address แบบเปนชวง IP Address range dynamic­bootp 192.168.1.101 192.168.0.253;

การใชคาคอนฟกแบบนจะมการจาย IP Address ใหกบลกขาย ตงแต 192.168.1.101 – 192.168.1.253จาย IP Address โดยเทยบกบ MAC Address ของการด LAN

host computer1 {                hardware ethernet 00:13:72:17:E7:65;                fixed­address 192.168.0.100;        }

host computer2 {                hardware ethernet 00:06:1B:D9:92:0C;                fixed­address 192.168.0.101;        }

โดยทเครอง computer1 ทม MAC Address 00:13:72:17:E7:65 จะไดรบ IP Address 192.168.1.100 เครองcomputer2 ทม MAC Address 00:06:1B:D9:92:0C กจะได IP 192.168.1.101 ในการใชงานจรงกควรเลอกแบบใดแบบหนง เพราะความสะดวกไมเหมอนกน แบบแรกมความสะดวกแตไมปลอดภย แบบหลง ปลอดภยแตไมสะดวก เชน เปลยนการดแลนใหม หรอมเครองเพมเขามา กตองเปลยนคา คอนฟกใหม เพอใหเครองรบ IP Address ได

Page 115: หนังสือ Linux Advance ภาษาไทย

115

เมอเปลยนคาของไปคอนฟกเรยบรอยแลว กสามารถให DHCP Server ทำางานไดเลยถาหากไฟลคอนฟกมความผดพลาดกจะมขอความเตอน เชน[root@ourintranet ~]# service dhcpd restartInternet Systems Consortium DHCP Server V3.0.1Copyright 2004 Internet Systems Consortium.All rights reserved.For info, please visit http://www.isc.org/sw/dhcp/Address range 192.168.0.101 to 192.168.0.253 not on net 192.168.1.0/255.255.255.0!

If you did not get this software from ftp.isc.org, pleaseget the latest from ftp.isc.org and install that beforerequesting help.

If you did get this software from ftp.isc.org and have notyet read the README, please read it before requesting help.If you intend to request help from the dhcp­[email protected] list, please read the section on the README aboutsubmitting bug reports and requests for help.

Please do not under any circumstances send requests forhelp directly to the authors of this software ­ pleasesend them to the appropriate mailing list as described inthe README file.

exiting.[root@ourintranet ~]#

ถาไมมขอผดพลาด DHCP Server กพรอมใชงาน

[root@ourintranet ~]# service dhcpd startStarting dhcpd:                                            [  OK  ][root@ourintranet ~]#       

ตอนน DHCP Server พรอมใชงานแลว มาดกนตอวาเครองลกขายจะตองทำาอยางไรเพอใหรบ IP Address จากเครองแมขายได

Page 116: หนังสือ Linux Advance ภาษาไทย

116

เครองลกขาย (DHCP Client)

สำาหรบเครองลกขายทเปนวนโดว ให กด Start ท Taskbar -->Setting-->Network Connections ดบเบลคลกท ไอคอน Local Area Connection กจะไดดงรป xx คลกท Properties

รปท 24-7 แสดง

คลกท Properties จะไดดงรป xx ดบเบลคลกท Internet Protocal(TCP/IP)

รปท 24-8 แสดง

Page 117: หนังสือ Linux Advance ภาษาไทย

117

ใหเครองลกขายรบ IP Address จากแมขายโดยการคลก ท Obtain an IP address automatically และ Obtain DNS server address automatically

รปท 24-9เสรจแลวตอบ OK, OK กลบมาทหนาแรก กด แถบ Support กจะเหนวาเครองลกขายไดรบ IP

จากเครองแมขายมาแลว ถาตองการดรายละเอยดมากกวานน กใหคลกปม Details...

รปท xx

ยงไมได IP Address กให คลกปม Repair ถาจะดรายละเอยดของ IP Address กใหคลกปม

Page 118: หนังสือ Linux Advance ภาษาไทย

118

Detail กจะเหนรายละเอยดมากขน ดงรป xx

รปท xx รปแสดงหรออกวธหนง ทจะดรายละเอยดของการรบ IP Address มา ท Taskbar กด Start--> Run.. พมพ cmd

เมอขนหนาตางคำาสงมาใหพมพ ipconfig /all กจะเหนรายละเอยดดงรป xx

รปท xx แสดง

Page 119: หนังสือ Linux Advance ภาษาไทย

119

Linux Red Hat DHCP Clientบนลนกซตระกล Red Hat สามารถเปลยนใหรบ DHCP ไดโดย

[root@dhcpclient ~]# system­config­network

เลอก eth0 แลวคลก ท Edit

รปท xxแลวเลอก Automatically obtain IP address settings with dhcp

Page 120: หนังสือ Linux Advance ภาษาไทย

120

หรอจะแกไฟล[root@dhcpclient ~]# vi /etc/sysconfig/network­scripts/ifcfg­eth0

เดมDEVICE=eth0BOOTPROTO=noneBROADCAST=192.168.1.255HWADDR=00:10:B5:CC:98:36IPADDR=192.168.1.1NETMASK=255.255.255.0NETWORK=192.168.1.0ONBOOT=yesTYPE=EthernetUSERCTL=noPEERDNS=yesIPV6INIT=noGATEWAY=192.168.1.254

แกเปนDEVICE=eth0BOOTPROTO=dhcpHWADDR=00:10:B5:CC:98:36ONBOOT=yesTYPE=EthernetUSERCTL=noPEERDNS=yesIPV6INIT=no

บนทกไฟลแลวแลว ใชกคำาสงเพอให Network restart[root@dhcpclient ~]#service  network restart

ทดลองใชคำาสง ifconfig เพอดวา IP Address เปลยนแปลงไปหรอไม[root@dhcpclient ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:10:B5:CC:98:36          inet addr:192.168.1.253  Bcast:192.168.1.255 Mask:255.255.255.0          inet6 addr: fe80::210:b5ff:fecc:9836/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:2086 errors:0 dropped:0 overruns:0 frame:0          TX packets:606 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:202288 (197.5 KiB)  TX bytes:211382 (206.4 KiB)          Interrupt:11 Base address:0xc000

จะเหนวาเครองลกขายจะได IP Address ตามทเราตงเอาไวท Server โดยท Server จะจาย IP ทอยหลงสดมาใหกอน

Page 121: หนังสือ Linux Advance ภาษาไทย

121

บทท 25Squid Proxy Server

การใชงานอนเตอรเนตตามบานทใชโมเดมธรรมดา หรอ ADSL กตามแต ไมมความจำาเปนตองม Proxy Server เพราะจำานวนเครองทใชงานนอย แตถาระดบโฮมออฟฟศ หรอออฟฟศทมพนกงาน 10 คนขนไป และใช ADSL หรอ Lease Line กแลวแตนาจะมองหา Proxy Servr ไวในองคกร นะครบ เหตผลเหรอครบเพราะ Proxy Server จะเพมชวยความเรวในการใชงานอนเตอรเนต เพมไดอยางไร เชน เครองคอมพวเตอรในสำานกงาน เครอง ชอ Client1 เขาเวบไซต www.abc.com เปนประจำา ถาไมม Proxy Server เครอง client1 กจะไปโหลดขอมลจากอนเตอรเนต หรอจาก server www.abc.com ใหมทกครงทเขาเขาเวบ www.abc.com หรอเวบไซตอะไรกแลวแต สมมมตวา มเครอง client 1-20 โหลดขอมลเวบเดยวกนพรอมๆ กนกจะทำาใหการใชงานอนเตอรเนตชาลงเพราะตองรอขอมลกน แตถาม Proxy Server เมอ Client 1 เขาเวบไซต www.abc.com proxy จะคนหาขอมลในเครอง (ในฮารดดสก) ซงเรยกวา แคช (Cache) ดกอนวามอยมย ถามกจะสงใหเครอง Client1 ทนท ถาไมมกจะโหลดขอมลมาให Client1 แลวกเกบลงฮารดสกดวย เมอ Client1 หรอ Client 2-20 เขาเวบไซต www.abc.com อก proxy กจะสงขอมลทอยบนฮารดดสกให ทำาใหลดการจราจรบนเครอขายได และไดขอมลเรวขนไมตองรอไปโหลดจากอนเตอรเนต แลวถาเวบไซตนนๆ มขอมลเปลยนแปลงเรากไดหนาเวบอนเกาซ ถกตองครบ ไมตองหวงครบเราสามารถกำาหนดระยะเวลา ของการหมดอายของขอมลได เราเปนคนดแลระบบผใชงานทวไปเขาไมรหรอก

การตดตง Proxy Server บนลนกซบนลนกซเกอบทกคายจะม Proxy Server มาใหอยแลวโดยจะใชโปแกรมทชอ Squid

http://www.squid-cache.org/ ไมตองไปดาวนโหลดมากไดครบเพราะม squid มาใหอยแลว แตอาจจะไมใชเวอรชนลาสด

Page 122: หนังสือ Linux Advance ภาษาไทย

122

Page 123: หนังสือ Linux Advance ภาษาไทย

123

Page 124: หนังสือ Linux Advance ภาษาไทย

124

[root@ourintranet ~]# chkconfig squid on[root@ourintranet ~]# vi /etc/squid/squid.conf

ไฟลคอนฟกของ squid มประมาณ 3380 บรรทด เนองจากมคำาอธบายอยในไฟลคอนฟกนดวยคาปกตของไฟลคอนฟกนนไมอนญาต ใหเครองลกขายใชงานไดเลย เราจำาเปนตองแกคอนฟกไฟลเพอให Proxy Server ใหบรการกบเครองลกขายได

 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

# Example rule allowing access from your local networks. Adapt# to list your (internal) IP networks from where browsing should# be allowed#acl our_networks src 192.168.1.0/24 192.168.2.0/24#http_access allow our_networks

เบองตนใหแกดงน # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

# Example rule allowing access from your local networks. Adapt# to list your (internal) IP networks from where browsing should# be allowedacl our_networks src 192.168.1.0/24http_access allow our_networks

port ของ Proxy Server ถาเราไมเปลยนแปลงกจะได default port คอ 3128 ถาตองการเปลยนกใหเอาเครองหมาย # ออก ตรงบรรทด # http_port 3128 เชน http_port 8080#Default:# http_port 3128

Page 125: หนังสือ Linux Advance ภาษาไทย

125

หลงจากทเปลยน config เรยบรอยแลวสงให squid ทำางาน

[root@ourintranet ~]# service squid startinit_cache_dir /var/spool/squid... Starting squid: . [ OK ]

ถามการเปลยนคาในไฟลคอนฟกอกก สามารถใชคำาสง squid -k reconfigure เพออานคาคอนฟกใหม[root@ourintranet ~]# squid -k reconfigure

กลบมาทเครอง Client ทเมนของ Internet explorer ไปท Tools --> Internet Options ไปทแถบ Connections

ใหเลอก Use Proxy server for your LAN แลวระบ Address เปน Proxy Server ของเรา ในทนคอ 192.168.1.1 port 3128

คลกทน

Page 126: หนังสือ Linux Advance ภาษาไทย

126

ตอบ OK แลว ทดลอลงเขาเวบไซตางๆ ด

กลบมาท Server ทดลองใชคำาสง tail -f /var/log/squid/access.log ถามการเปลยนแปลงแสดงวา Proxy Server ของเราใชงานไดแลว[root@ourintranet ~]# tail ­f /var/log/squid/access.log1160104408.035   3161 192.168.1.6 TCP_MISS/304 183 GET http://www.siamza.com/images/bar_menu.gif ­ DIRECT/221.128.124.189 ­1160104417.206    657 192.168.1.6 TCP_MISS/200 557 GET http://www.hospital­os.com/ ­ DIRECT/61.47.4.49 text/html1160104419.647    171 192.168.1.6 TCP_MISS/200 5437 GET http://www.hospital­os.com/th/themes/blueweb_v3/style/style.css ­ DIRECT/61.47.4.49 text/css1160104419.835    357 192.168.1.6 TCP_MISS/200 793 GET http://truehits1.gits.net.th/data/c0004229.js ­ DIRECT/164.115.2.134 application/x­javascript1160104420.024     91 192.168.1.6 TCP_MISS/200 8872 GET http://www.hospital­os.com/th/themes/blueweb_v3/images/logo3.gif ­ DIRECT/61.47.4.49 image/gif

Proxy แบบนมขอเสยคอ ตองมา Set ทลกขายทกเครอง

Transparent ProxyTransparent Proxy คอ การบงคบใหลกขายทกเครองออกใชงานอนเตอรเนตผาน Proxy Server ทงหมด

โดยทไมมการ set ทเครองลกขายและ ผใชงานกไมรวาผาน Proxy

โดยการเพม คา Config ทไฟล /etc/squid/squid.conf เอาไวบรรรทดลางสดเลยกได

Page 127: หนังสือ Linux Advance ภาษาไทย

127

httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on

[root@ourintranet ~]# squid ­k reconfigure

[root@ourintranet ~]# iptables ­t nat ­A PREROUTING ­i eth0 ­p tcp ­­dport 80 ­j REDIRECT ­­to­port 3128 [root@ourintranet ~]# service iptables save[root@ourintranet ~]# service iptable restart

หลงจากนนกใหเครองลกขายช gateway มาท Proxy server

ภาพท xx

แตวธการน ใช iptables แคบรรทดเดยวไมปลอดภยอยาใชเลยครบรไวประดบความรกพอ ใหอานบทตอไปการใช Arno's Script

Page 128: หนังสือ Linux Advance ภาษาไทย

128

รกษาความปลอดภย Server ดวย Arno's Scriptการรกษาความปลอดภยของลนกซ โดยการใช Firewall นน ลนกซจะใชโปแกรมทชอ iptables ซงมมากบ

kernel อยแลว ในการใชงาน iptables ตองเขยนคำาสง หรอเขยนกฏขนมาเพอรกษาความปลอดภย ถาจะใหศกษากฏเหลานน และใหสามารถใชงานเปน Firewall ไดไมใชเรองงาย ลนกซมอใหม หรอมอเกาอาจทอใจเอางายๆ เพราะมนยาก เอาเวลาไปทำาอยางอนกอนดกวา หรอจะใชเครองมอทลนกซมมาใหเชน system-config-security-level กไมสามารถตอบสนอง ความตองการ และไมยดหยนพอ แตในเมอมเครองมอทอำานวยความสะดวกใหกบเรา ใชงานงาย และชวยรกษา Server ของเราใหปลอดภย กควรหยบฉวยมาใชงานกอน มเวลาแลวคอยมาศกษา iptables ทหลงกได Arno's Script เปนงานอดเรกของนาย Arno van Amersfoort ซงจบการศกษาทางดาน Electronics/Computer Engineering สามารถดาวนโหลดและดรายละเอยดของนาย arno ไดท http://rocky.molphys.leidenuniv.nl/

การตดตง Arno's scriptดาวนโหลด http://rocky.eld.leidenuniv.nl/iptables-firewall/arno-iptables-fir ewall_1.8.6c.tar.gz

ไฟลทไดมาชอ arno-iptables-firewall_1.8.6c.tar.gz จะตองขยายไฟลออกมากอน

[root@ourintranet ~]# tar xvfz arno­iptables­firewall_1.8.6c.tar.gzarno­iptables­firewall_1.8.6c/arno­iptables­firewall_1.8.6c/arno­fwfilterarno­iptables­firewall_1.8.6c/arno­fwfilter.1...[root@ourintranet ~]# cd arno­iptables­firewall_1.8.6c[root@ourintranet arno­iptables­firewall_1.8.6c]# lsarno­fwfilter           arno­iptables­firewall.8             arno­multiroute.sh  Gentoo           Redhatarno­fwfilter.1         arno­iptables­firewall.conf          CHANGELOG gpl_license.txt  Slackwarearno­iptables­firewall  arno­iptables­firewall.conf.example  Debian README

หลงจากท แตกไฟลแตกไฟลออกมาแลวกจะเหนมไฟลเยอะแยะไปหมด ใหสนใจแค 2 ไฟลกอนไฟลแรกคอ arno­iptables­firewal copy ไปไวท /etc/init.d

[root@ourintranet arno­iptables­firewall_1.8.6c]# cp arno­iptables­firewall /etc/init.d

ไฟลท 2 arno-iptables-firewall.conf copy ไปไวท /etc [root@ourintranet arno­iptables­firewall_1.8.6c]# cp  arno­iptables­firewall.conf /etc

ใชคำาสงให script ทำางานตงแตบท และไมให iptables ทำางานตอนบท[root@ourintranet arno­iptables­firewall_1.8.6c]# chkconfig iptables off[root@ourintranet arno­iptables­firewall_1.8.6c]# chkconfig arno­iptables­firewall /etc/init.d on

ถงตอนน ยงไมพรอมทจะให script ทำางานตองแกไฟล /etc/arno-iptables-firewall.conf

Page 129: หนังสือ Linux Advance ภาษาไทย

129

ในการแกไฟล /etc/arno-iptables-firewall.conf สามารถนำาไปใชประโยชนไดหลายเรอง แตทจะนำาเสนอในทนม 2 เรองคอ

1. ใชเพอปองกนเครอง Server 2. ใชในการแชรอนเตอรเนตและใชงานรวมกบ Proxy Server

ใช Arno's Script เพอปองกน server ในการปองกน Server ไมวาจะเปน Server ในองคกร หรอ Server ทอยบนอนเตอรเนตกสามารถใชได

สงทตองแกในไฟล /etc/arno-iptables-firewall.conf มดงน ตวอยาง Server ม LAN Card eth0 IP Address 192.158.1.1 เปน Mail Server และ Web Server

EXT_IF="eth0"

EXTERNAL_NET="192.168.1.0/24"

OPEN_TCP="22 25 80"

OPEN_UDP=""

OPEN_IP=""

OPEN_ICMP=1

EXT_IP="eth0" OP_TCP คอ port ทเราเปดใหบรการ ถาตองการดวาแตละ port หมายถงอะไร กใหเปดไฟล /etc/serviceOPEN_ICMP=1 หมายความวา หลงจากทท ใช Arno's Script แลวไมสามารถทจะ ping ได

ออปชนอนๆ ทสามารถนำามาใชไดเชนBLOCK_HOSTS="192.168.1.10 192.168.1.11"

[root@ourintranet ~]# service arno-iptables-firewall restart

[root@ourintranet ~]# /etc/init.d/arno-iptables-firewall restart

Page 130: หนังสือ Linux Advance ภาษาไทย

130

ใชในการแชรอนเตอรเนตและใชงานรวมกบ Proxy Server แผนผง

รปท xxจากรปท xx ADSL Router ม IP Address 10.0.0.1 Proxy Server ม Lan Card 2 อนแรก eth0 ม IP

10.0.0.2 Netmask 255.255.255.0 Gateway 10.0.0.1 Lan Card อนท 2 IP Address 192.168.1.254 ถงตอนนเรา Set proxy Sever ไวเรยบรอยแลวจากบทท x มาถงตอนนเราจะมาแชรอนเตอรเนตโดยใช Arno's scriptโดยการแกไฟล /etc/arno-iptables-firewall.conf

EXT_IF="eth0"   INT_IF="eth1"INTERNAL_NET="192.168.1.0/24"NAT=1HTTP_PROXY_PORT="3128"LAN_INET_OPEN_TCP="80"

[root@proxy ~]# /etc/init.d/arno-iptables-firewall restart

ทเครอง Server ทดลอง ping ออกไปขางนอกวาใชงานไดหรอไม

Page 131: หนังสือ Linux Advance ภาษาไทย

131

[root@proxy ~]# ping yahoo.comPING yahoo.com (66.94.234.13) 56(84) bytes of data.64 bytes from w2.rc.vip.scd.yahoo.com (66.94.234.13): icmp_seq=1 ttl=47 time=259 ms64 bytes from w2.rc.vip.scd.yahoo.com (66.94.234.13): icmp_seq=2 ttl=47 time=272 ms64 bytes from w2.rc.vip.scd.yahoo.com (66.94.234.13): icmp_seq=3 ttl=48 time=273 ms

ถาไดแบบนถอวา Proxy Server เราสามารถใชงาน Internet ผาน ADSL Router ไดกลบมาทเครองลกขาย ใหช Gateway ไปท 192.168.1.254

ภาพท xxสวนคาใน Internet Explorer ท เมน --> Internet Options -->Conections -->LAN Settings กใหยกเลกคา

ของ Proxy Server

Page 132: หนังสือ Linux Advance ภาษาไทย

132

ภาพท xxเมอลกขายใชงานอนเตอรเนตกจะออกผาน Proxy Server ถาหากเราตองการตงกฏใน squid

## ถาจะเพมกฏ มตวอยางดงน เชนไมใหเครองลกขาย IP 192.168.1. 50 ใชงาน ตวอยางจากกฎ

acl client50 src 192.168.1.50http_access deny client 50

หรอจะเขยนแบบใหไปอานจาก Text File acl banned_ips src "/etc/squid/banip.txt" http_access deny banmed_ips

Page 133: หนังสือ Linux Advance ภาษาไทย

133

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

# Example rule allowing access from your local networks. Adapt# to list your (internal) IP networks from where browsing should# be allowed

acl our_networks src 192.168.1.0/24acl banned_ips       src "/etc/squid/banip.txt"acl within_timeframe time MTWHFAS 09:00­16:00acl web url_regex ­i ^http://www.sex 

http_access deny web http_access allow  within_timeframehttp_access allow our_networkshttp_access allow localhost

# And finally deny all other access to this proxyhttp_access deny all

Page 134: หนังสือ Linux Advance ภาษาไทย

134

บทท SAMBASamba เปนซอฟตแวรทชวยใหสามารถแชรไฟลและเครองพมพบนลนกซใหกบระบบปฏบตการวนโดวส

95, 98, 2000, NT รวมทง smbclient อน เชน linux, unix อนๆ ได จะยกตวอยางการตดตง และใชงานโปรแกรมกอนนะครบแลวคอยอธบายภายหลง

การตดตง

[root@ourintranet ~]# useradd piti[root@ourintranet ~]# passwd pitiChanging password for user piti.New UNIX password: BAD PASSWORD: it is based on a dictionary wordRetype new UNIX password: passwd: all authentication tokens updated successfully.[root@ourintranet ~]# smbpasswd ­a pitiNew SMB password:Retype new SMB password:startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.Added user piti.[root@ourintranet ~]# service smb startStarting SMB services:                                     [  OK  ]Starting NMB services:                                     [  OK  ][root@ourintranet ~]# 

Page 135: หนังสือ Linux Advance ภาษาไทย

135

ทดลองการแชรไฟลกลบมาทวนโดว มาทดลองดวาสงทเราทำาไปบน server ใชไดหรอเปลา \\192.169.1.1

รปท xx แสดงกจะขน Username password

รปท xx แสดง

Page 136: หนังสือ Linux Advance ภาษาไทย

136

กจะเหน Folder piti ซงเปนโฮมไดเรกทอรของ user piti นนเอง

รปท xx แสดง

เมอเขามาดใน Folder กจะเหนไฟลตางทอยบนลนกซ

รปท xx แสดง

Page 137: หนังสือ Linux Advance ภาษาไทย

137

กลบมาท Server มาทดลองแชไดเรคทอรโดยการแกไฟลคอนฟกของ Samba ดงน[root@ourintranet ~]# mkdir /share[root@ourintranet ~]# chown piti.piti /share[root@ourintranet ~]# vi /etc/samba/smb.conf

[ourshare] comment = Share Folder path = /share valid users = piti public = no writable = yes

[root@ourintranet ~]# service smb restartShutting down SMB services:                                [  OK  ]Shutting down NMB services:                                [  OK  ]Starting SMB services:                                     [  OK  ]Starting NMB services:                                     [  OK  ][root@ourintranet ~]# 

รปท xx

Page 138: หนังสือ Linux Advance ภาษาไทย

138

รปท xx

กรณตวอยางนำามาใชงาน มบรษทหนง ม 4 แผนกดงน

1. ฝายประชาสมพนธ (pr) มพนกงาน 1 คน คอ somsri2. ฝายเวบไซต (web) มพนกงาน 2 คน คอ somchai, suchart3. ฝายขาย (sale) มพนกงาน 1 คน คอ somwang4. ฝาย (support) มพนกงาน 1 คน saismorn

ตองการใช Samba ทำาไฟล Server โดยมไดเรคทอรทแชร ตามชอแผนกคอ pr, web, sale และ support โดยทม ผจดการ (manager) สามารถเขาไปใชงานไดทกไดเรกทอร และไฟลทผจดการสรางขนในทกๆ ไดเรกทอรลกนองทกฝายสามารถนำาไปใชงานไดมาดขนตอนการสรางไดเรคทอร

Page 139: หนังสือ Linux Advance ภาษาไทย

139

การจดการ User[root@ourintranet ~]# groupaad manager[root@ourintranet ~]# groupaad pr[root@ourintranet ~]# groupaad web[root@ourintranet ~]# groupadd sale[root@ourintranet ~]# groupadd support[root@ourintranet ~]# useradd ­g manager manager[root@ourintranet ~]# useradd ­g pr somsri[root@ourintranet ~]# useradd ­g web somchai[root@ourintranet ~]# useradd ­g web suchart[root@ourintranet ~]# useradd ­g sale somwang[root@ourintranet ~]# useradd ­g support saisamorn[root@ourintranet ~]# usermod ­G pr,web,sale,support manager[root@ourintranet ~]# passwd manager[root@ourintranet ~]# passwd somsri[root@ourintranet ~]# passwd somchai[root@ourintranet ~]# passwd suchart[root@ourintranet ~]# passwd somwang[root@ourintranet ~]# passwd saisamorn[root@ourintranet ~]# smbpasswd ­a manager[root@ourintranet ~]# smbpasswd ­a somsri[root@ourintranet ~]# smbpasswd ­a somchai[root@ourintranet ~]# smbpasswd ­a suchart[root@ourintranet ~]# smbpasswd ­a somwang[root@ourintranet ~]# smbpasswd ­a saisamorn 

การจดการไดเรกทอร[root@ourintranet ~]# mkdir /depts[root@ourintranet ~]# mkdir ­p /depts/{pr,web,sale,support}[root@ourintranet ~]# groupadd pr[root@ourintranet ~]# groupadd web[root@ourintranet ~]# groupadd sale[root@ourintranet ~]# groupadd support[root@ourintranet ~]# chgrp pr /depts/pr[root@ourintranet ~]# chgrp web /depts/web[root@ourintranet ~]# chgrp sale /depts/sale[root@ourintranet ~]# chgrp support /depts/support[root@ourintranet ~]# chmod 770 /depts/pr[root@ourintranet ~]# chmod 770 /depts/web[root@ourintranet ~]# chmod 770 /depts/sale[root@ourintranet ~]# chmod 770 /depts/support[root@ourintranet ~]# chmod  g+s  /depts/*

Page 140: หนังสือ Linux Advance ภาษาไทย

140

ใหแกไฟล /etc/samba/smb.conf เพมบรรทดเหลานเขาไป[pr]   comment =  Share for PR    path = /depts/pr   valid users = manager somsri   public = no   writable = yes

[web]   comment =  Share for  Web    path = /depts/web   valid users = manager somchai suchat   public = no   writable = yes

[sale]   comment =  Share for Sale    path = /depts/sale   valid users = manager somwang   public = no   writable = yes

[support]   comment =  Share for Support    path = /depts/support   valid users =  manager saisamorn   public = no   writable = yes

ไมให user ใชงานโฮมไดเรกทอร comment บรรทดเหลาน

 #[homes]  ; comment = Home Directories  ; browseable = no  ; writable = yes

[root@ourintranet ~]# /etc/init.d/smb restartShutting down SMB services:                                [  OK  ]Shutting down NMB services:                                [  OK  ]Starting SMB services:                                     [  OK  ]Starting NMB services:                                     [  OK  ][root@ourintranet ~]# 

Page 141: หนังสือ Linux Advance ภาษาไทย

141

ทดลองใชงานโดยใช user manager Login เขามา

รปท xx

User manager จะสามารถเขาใชงานไดทก Folder

รปท xx

Page 142: หนังสือ Linux Advance ภาษาไทย

142

รปท xx

ทดลองสรางไฟลใหมใน folder pr และ folder อนๆ กสามารถทำาได

Page 143: หนังสือ Linux Advance ภาษาไทย

143

คำาอธบายเกยวคำาไฟลคอนฟกของ Sambaไฟลคอนฟกของ Samba ม 2 สวนหลก คอ สวน Global กบ สวนทแชร สวน Global

เปนคอนฟกรวมของระบบทงหมด ขนตนดวยบรรทด [global] เมอจบสวน global กจเปนสวนแชร คอการแชรไดเรคทอร ซงจะมคาปกตมาคอ [home] และ [printers] ถาเราตองการแชรไดเรกทอรอนเพมเขาไปได กเรมตนดวย [xxx] โดยท xxx คอชอทตองการใหแสดง

คอมเมนทบรรทดทขนตนดวย ; (semi-colon) และ # (hash) ถอวาเปนคอมเมนท คอจะไมมการอานคาคอนฟก

ในบรรทดนนๆ # ใชสำาหรบคอมเมนททวไปทเปนคำาอธบาย ชวยจำา; ใชสำาหรบคอมเมนท บรรทดทเปนการแชร

เชน# A private directory, usable only by fred. Note that fred requires 

write# access to the directory.;[fredsdir];   comment = Fred's Service;   path = /usr/somewhere/private;   valid users = fred;   public = no;   writable = yes;   printable = no

แตในความเปนจรงจะใชอนไหนกมผลเหมอนกน

การอนญาตใหเครองลกขายเขามาใชงานการอนญาตใหเครองลกขายเขามาใชงานไฟลและเครองพมพบน Samba นนม 4 แบบ

สามารถทำาไดโดยการทำาผานออปชน security security = share การเขาใชงานผใชงานสามารถเขาใชงานโดยไมตองร user มแครหสผานกเขาใชงานไดsecurity = user การเขาใชงานผใชงานตองใช username และ password ซงคาปกตของ samba จะเปนคาน security = server ทำางานเหมอน security = user แตในการเขาใชงานจะไปเชค username และ password

จาก Samba server เครองอน เปนการรกษาความปลอดภยเพมขนไปอกsecurity = domain Samba สามารถเปนสมาชกของ Windows Domain ได

ดงนนเมอผใชทำาการยนยนตวตนกบ primary domain controller (PDC) แลว กจะสามารถเขาใชงานแชรทอยบน Samba server ได

ถาหากมการระบออปชน Public = yes หรอ Guest ok = yes ใน /etc/samba/smbd.conf แลว และไมวาจะระบ security เปนออปชนใด Samba กจะไมทำาการตรวจสอบรหสผานทสงมาจากไคลเอนต (client) แตอยางใด

Page 144: หนังสือ Linux Advance ภาษาไทย

144

รหสผานการทผใชจะสามารถเขาใชงานไดเรกทอรหรอเครองพมพทแชรไวไดนน ผใชจะตองม user

อยลนกซกอน และตองเปน user ทได set password แลว ออปชนทเกยวกบ password คอ

encrypt passwords = yes

smb passwd file = /etc/samba/smbpasswd

ถา encrypt passwords = yes เวลา user login เขามาจะมการตรวจสอบรหสผานจาก /etc/samba/smbpasswd

ในการเพม user เขาไปใน /etc/samba/smbpasswd โดยใชคำาสง

smbpasswd -a user เชน smbpasswd somchai

ถาตองการเปลยน password ใหกบ user ใชคำาสง smbpasswd user เชน smbpasswd somchai ถาหากตองการดวธการใชงานของ smbpasswd smbpasswd –help สวน encrypt passwords = no เปนการเชค password จาก /etc/pasword ซงจะไมพดถงในรายละเอยดและไมควรใช ออปชนนครบ

Networking Optionsออปชนทเกยวกบ Network เปนการอนญาตใหลกขาย IP Address ตางๆ เขามาใชงานhosts allow = 192.168.1. hosts deny = 192.168.1.226/255.255.255.255hosts deny = ALL EXCEPT 192.168.1. 192.168.1. (หนงเกาสองจดหนงหกแปดจดหนงจด) เปนลกษณะ การเขยนของ Samba

ซงมความหมายเดยวกบ 192.168.1. 0/255.255.255.0 หรอ 192.168.1.0/24 ซงมความหมายวาอนญาตให IP 192.168.1.1-192.168.1.254 อนญาตใหเขาใชงานได

อยางไรกตาม Samba มกฎในการนำาคา configuration ของ host allow, hosts deny ไปใชงานดงน

1. ถาไมมการระบ hosts allow หรอ hosts deny ตว Samba จะถอวาเปนการอนญาตใหใชงานไดอยางอสระ (เสมอน hosts allow = ALL)

2. ถามการระบ hosts allow, hosts deny ใน [global] คาดงกลาวจะมผลกบทกๆ แชร แมวาจะมการระบ hosts allow, deny ในแตละแชรซงการระบในแตละแชรดงกลาวจะถอวาไมมผลแตอยางใด

3. ถามการระบ hosts allow แตไมไดระบ hosts deny จะถอวา คาทนอกเหนอจากทระบใน hosts allow จะมสถานะเปน deny โดยอตโนมต

4. ในทำานองเดยวกน ถามการระบ hosts deny แตไมไดระบ hosts allow จะถอวา คาทนอกเหนอจากทระบใน hosts deny จะมสถานะเปน allow โดยอตโนมต

5. ถามคา เชน ip address หรอ subnet ถกระบในทง hosts allow และใน hosts deny

Page 145: หนังสือ Linux Advance ภาษาไทย

145

จะถอวาคาดงกลาวมสถานะเปน deny

File Permissions and Attributes

• ออปชน create mask ใชกำาหนดคา default permission สงสด สำาหรบไฟลทสรางขนมาใหม เชน create mask = 0640

• ออปชน directory mask ใชกำาหนดคา default permission สงสด สำาหรบไดเรกทอรทสรางขนมาใหม เชน directory mask = 750

การเขาถงไฟลและไดเรกแชรการเขาถงไฟลและไดเรกทอรทแชร นนนอกจากออปชนบน Samba แลว ยงขนกบ permission

ของไฟลและไดเรกทอรดวย บางครงถงแมวา option บน Samba บอกวาอนญาตใหเขยนได แต permission ของไฟลไมอนญาตใหเขยนกเขยนไมได ผดแลระบบควรจำากดการเขาถงแชรใดๆ ใหใชงานไดเฉพาะผทสมควรไดรบสทธเทานน โดยมออปชนทเกยวของดงน

valid users = somchai suchart @webระบใหเฉพาะผใชทมชอในรายการนเทานน จงจะสามารถเขาถงดสกทแชรไวได (ใช @ สำาหรบทง group)** หากรายชอผใชทกำาหนดไวใน valid users ไปปรากฏซำากบรายชอใน invalid users กจะถอวาผใชรายนนถกจดในกลม invalid users

invalid users = lertsak @guestแสดงรายชอผใชทไมมสทธเขาใชงานแชร

writable = yeswriteable = yeswrite ok = yesread only = noออปชนทงสแบบดานบนนใหผลลพธเหมอนกน คออนญาตใหผใชสามารถสรางไฟลหรอไดเรกทอรขนมาใหมได

read list = choawalit kitisakแสดงรายชอผใชทมสทธใชงานแชรแบบอานเทานน ไมสามารถทำาการแกไขใดๆ ได หากวาผใชใน read list มชอใน list อน เชน write list, read only, writeable กจะถอวาผใชนนมสทธเปน read only เทานน

write list = lersak, phuwadon, siriwan

Page 146: หนังสือ Linux Advance ภาษาไทย

146

เปนการใหสทธ write แกผใชทมชอในรายการน แมวาจะมการระบวา read only = yes กตาม

public = noguest ok = noออปชน public และ guest ok สามารถใชแทนกนได ซงหากกำาหนดคาเปน yes กจะทำาใหสามารถเขาใชงานดสกทแชรไวโดยไมตองลอกอน

hosts equiv = เปนออปชนทเปนอนตรายอยางยง ผดแลระบบควรตรวจสอบใหแนใจวาไมมการระบออปชนนในไฟล /etc/samba/smb.conf เปนอนขาด เพราะในออปชน hosts equiv ดงกลาวจะกำาหนดรายชอผใชและโฮสตทสามารถเขาใชงานดสกทแชรไวโด ยไมตองใชรหสผาน (คลายกบไฟล hosts.equiv ของ Unix)

การใชงาน smbclient

smbclient เปนโปแกรม client แบบคำาสงทใชงานบนลนกซ

รปแบบการใชงาน

smbclient //  ชอเครองหรอ IP Addres/  ชอทแชร ­U username%password

root@sothorn:~# smbclient //192.168.1.1/pr ­U manager%passwordDomain=[OURINTRANET] OS=[Unix] Server=[Samba 3.0.10­1.4E]smb: \> ls  .                                   D        0  Sat Oct 28 13:53:30 2006  ..                                  D        0  Thu Oct 26 15:43:34 2006  new_file_in_pr.txt                  A        0  Sat Oct 28 13:52:55 2006

                63002 blocks of size 131072. 39053 blocks availablesmb: \> ??              altname        archive        blocksize      cancel         case_sensitive cd             chmod          chown          del            dir            du             exit           get            getfacl        hardlink       help           history        lcd            link           lowercase      ls             mask           md             mget           mkdir          more           mput           newer          open           print          prompt         put            pwd            q              queue          quit           rd             recurse        reget          rename         reput          rm             rmdir          setmode        stat           symlink        tar            tarmode        translate      volume         vuid           logon          listconnect    showconnect    !              smb: \> 

Page 147: หนังสือ Linux Advance ภาษาไทย

147

Samba Linux Client บนลนกซแบบการฟก

สำาหรบ Ubuntu ใหไปท เมน ทหลกๆ -->เซรฟเวอรในเครอขาย

รปท XX

ดบเบลคลกเครอขายวนโดว

รปท xx

Page 148: หนังสือ Linux Advance ภาษาไทย

148

ดบเบลคลกท mygroup ซงมาจากไฟลคอนฟกของ Samba ในสวน [global] นนเอง workgroup = MYGROUP ซงเปนชอของ workgroup นนเอง

รปท xx

ดบเบลคลกท mygroup กจะพบกบชอของ เครองทเปด Server Samba อยในทนคอ ourintranet ถาเรามเครองวนโดวทอยใน workgroup เดยวกนกจะเหนมชอเครองอยเชนเดยวกน

รปท xx

Page 149: หนังสือ Linux Advance ภาษาไทย

149

หลงจากทดบเบลคลกทชอเครอง ourintranet เขามาแลวเรากจะเหนไดเรกทอรทเราแชรเอาไว

รปท xxดลเบลคลกท ไอคอน sale แลว login ดวย user manager

รปท xxดวยสทธของ mamager กสามารถเขาไปเขยนไฟลได

รปท xx

Page 150: หนังสือ Linux Advance ภาษาไทย

150