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
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 ตามลำาดบ
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 ไมพอ
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 ตองเปนพารตชนแรกของฮารดดสก
5
บทท 3กระบวนการบทของลนกซ
รปท 3-1 รปแสดงกระบวนการบทของลนกซ
หลงจากทเราตดตงลนกซเสรจ บทเครองใหม หรอเปดสวทช หลงจากทเครองคอมพวเตอรตรวจสอบตวเองแลวคนหาอปกรณทใชบท ถาตรวเจออปกรณทใชบทเปนฮารดดสกกจะไปทำางานตอท MBR ซง GRUB ฝงตวอยในสวน IPL ของ MBR มาทำาความเขาใจเกยวกบโปรแกรม Boot Loader ทชอ GRUB กนกอนครบ
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
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,
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.95.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~]#
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
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 อนๆ กเชนกน
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
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
13
บทท 5โครงสรางของไดเรกทอรของลนกซ
ผใชงานวนโดวจะมความคนเคยกบลกลกษณะโครงสรางไดเรกทอร ทม Driver C:\ , D:\ และโฟลเดอร แตสำาหรบลนกซนน จะไมมไดรฟแตจะม ไดเรกทอรเหนอสดคอ / (รทไดเรกทอร) หลงจากทเราตดตงลนกซเสรจ กจะมไดเรกทอรมากมาย ซงเหมอนกบตอนทเราตดตงวนโดวเสรจเราจะเหนโฟลเดอร Windows, Programs File ฯลฯ
มมมองแบบไดเรกทอร
รปท 5-1 แสดงไดเรกทอรทงหมดของลนกซ
มมมองแบบภาพ หรอ โฟลเดอรแบบวนโดว
รปท 5-2 แสดงไดเรกทอรในมมมองแบบโฟลเดอรในวนโดว
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 ไดเลย ขอควรจำา ถาเปลยน ไดเรกทอรไปทำางานทไดเรกทอรทไมตดกบ / และเปนไดเรกทอรถดไปกไมตองใสเครองหมาย /
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
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
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 เลอนเคอรเซอรไปยงตำาแหนงแรกของคำาทอยกอนหนา
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 ทปรากฏททายบรรทด/^$ หาบรรทดทเปนบรรทดวางๆ
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 แสดงเครองหมาย # ขณะทำางาน
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
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
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
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 ยกเลกการลอค
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
25
บทท 9Permission ของไฟล และ Directory
เนองจากลนกซมระบบการทำางานแบบผใชงานคราวละหลายคน เพราะฉะนนจำาเปนตองมการจำากดสทธของการเขาถงไฟล และไดเรกทอร ในระบบไฟลของลนกซจะแบงกลมของการเขาถงไฟลออกเปน 3 กลม คอ
1. คนทเปนเจาของไฟล2. คนทอยในกลมเดยวกน3. คนทไมใชเจาของไฟล และไมไดอยกลมเดยวกน
เมอเราใชคำาสง ls -l กจะเหนรายละเอยดของไฟลและไดเรกทอร
drwxrxrx 3 root root 4096 20060703 07:20 Desktopdrwxrxrx 8 root root 4096 20060701 08:33 MyDownloadrwrr 1 root root 4529 20060703 17:09 test.php
ในแตละกลมจะมการกำาหนดสทธได 3 แบบ ตวอกษร r มาจาก Read หมายถง อาน
ตวอกษร w มาจาก Write หมายถง เขยนตวอกษร x มาจาก Execute หมายถง ประมวลผล
สทธ เมอใชกบไฟล เมอใชกบไดเรคทอรread ดเนอหา ดรายชอไฟลในไดเรคทอรwriter เปลยนแปลง และแกไขเนอหาในไฟล สรางหรอลบไฟลในไดเรคทอรexecute สง execute (ประมวลผลได) เปลยนไดเรคทอร, คนหา
หรอสำาเนาจากไฟลในไดเรคทอรนน
ตวอยาง : ไมมสทธอะไรเลย (เลขทใชคอ 0) x : ประมวลผลไดอยางเดยว (เลขทใชคอ 1) r : อานไดอยางเดยว (เลขทใชคอ 4) rw : อาน และเขยนได (เลขทใชคอ 6) rx : อาน และประมวลผลได (เลขทใชคอ 5)
rwx : อาน เขยน และประมวลผลได (เลขทใชคอ 7)
26
รปท 8-1 แสดงคาของการกำาหนดสทธ
ความหมายของ rwxrwxrwx จะหนวามอกษร 9 ตว (ความจรง 10 ตว) ตวแรก ไมนบเปนตวบอกชนดของไฟล - หมายถงไฟล d หมายถง ไดเรกทอร l หมายถงลงคไฟล (ภาษาวนไดว เรยกวา shortcut)
3 ตวแรกหมายถง เจาของ3 ตวทสองหมายถง คนในกลมเดยวกน3 ตวทสามหมายถง คนอนทไมใชเจาของและไมใชคนในกลมเดยวกน
ตวอยางrwx : เจาของเทานนทมสทธทกอยางคนในกลมและคนอนไมมสทธ (เลขทใชคอ 700)rwxrwx : เจาของ และสมาชกกลมเดยวกนมสทธทกอยางคนอนไมมสทธ (เลขทใชคอ 770)rwrwrw : เจาของ และสมาชกกลมเดยวกนและคนอนอานและเขยนได (เลขทใชคอ 666)rwxrxrx : เจาของทำาไดหมด สวนกลมและคนอนอานและประมวลผลได (เลขทใชคอ 755)rrr : ทกคนอานไดอยางเดยว (เลขทใชคอ 444)
คำาสงทใชในการเปลนสทธของไฟลและไดเรกทอรchmod เปลยนโหมด chown เปลยนเจาของchgrp เปลยนกลม
27
ตวอยาง การใชงานคำาสง chmod
root@sothorn:~# touch test.htmlroot@sothorn:~# ls l test.htmlrwrr 1 root root 0 20060712 11:03 test.htmlroot@sothorn:~# chmod 755 test.phproot@sothorn:~# ls l test.htmlrwxrxrx 1 root root 0 20060712 11:03 test.htmlroot@sothorn:~# chmod 666 test.htmlroot@sothorn:~# ls l test.htmlrwrwrw 1 root root 0 20060712 11:03 test.htmlroot@sothorn:~# ls l test.htmlrwrwrw 1 root root 0 20060712 11:03 test.htmlroot@sothorn:~# chmod 700 test.htmlroot@sothorn:~# ls l test.htmlrwx 1 root root 0 20060712 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 ได
28
ตวอยาง การใชคำาสง chown และ chgrp
root@sothorn:~# ls l test.sqlrwxrxrx 1 root root 0 20060712 11:03 test.sqlroot@sothorn:~# chgrp postgres test.sqlroot@sothorn:~# ls l test.sqlrwxrxrx 1 root postgres 0 20060712 11:03 test.sqlroot@sothorn:~# chown postgres test.sqlroot@sothorn:~# ls l test.sqlrwxrxrx 1 postgres postgres 0 20060712 11:03 test.sqlroot@sothorn:~#
root@sothorn:~# ls l test.sqlrwxrxrx 1 root root 0 20060712 11:03 test.sqlroot@sothorn:~# chown postgres test.sqlroot@sothorn:~# ls l test.sqlrwxrxrx 1 postgres root 0 20060712 11:03 test.sqlroot@sothorn:~# chown root test.sqlroot@sothorn:~# ls l test.sqlrwxrxrx 1 root root 0 20060712 11:03 test.sqlroot@sothorn:~# chown postgres.postgres test.sqlroot@sothorn:~# ls l test.sqlrwxrxrx 1 postgres postgres 0 20060712 11:03 test.sql
คำาสงทเกยวของในบทนchmodchgrpchown
29
บทท 10การใชงาน System Config ตาง ๆ
ลนกซ Red Hat มเครองมอในการชวยปรบแก config ตางๆของระบบ เชน การเปลยน IP การปรบวนท เวลา ฯลฯ เราสามารถทดลองดไดวามโปรแกรมอะไรบาง โดยการพมพ system- แลวกด Tab สองครงกจะเหนดงภาพ สำาหรบ Red Hat ใน เวอรชนตำากวา Enterprise 4 หรอ FC4 กจะขนตนดวย redhat- [root@training1 ~]# systemsystemcdinstallhelper systemconfigpackagessystemconfigauthentication systemconfigprintersystemconfigdate systemconfigprinterguisystemconfigdisplay systemconfigprintertuisystemconfighttpd systemconfigrootpasswordsystemconfigkeyboard systemconfigsambasystemconfiglanguage systemconfigsecuritylevelsystemconfiglvm systemconfigsecurityleveltuisystemconfigmouse systemconfigservicessystemconfignetwork systemconfigsoundcardsystemconfignetworkcmd systemconfigtimesystemconfignetworkdruid systemconfiguserssystemconfignetworkgui systemcontrolnetworksystemconfignetworktui systeminstallpackagessystemconfignfs systemlogviewer
โปรแกรมตางๆ เหลานจะอยในเมนอยแลว โปรแกรมจะชวยเราทำางานใน Graphic Mode เทานน
รปท 10- 1 แสดงโปรแกรม System Settings
30
ตดตงโปรแกรม system-configถาในขนตอนตดตงลนกซไมไดเลอก Package Server Configuration Tools และ Administration Tools
กไมสามารถใชงานโปแกรม system-config ตางๆได
รปท 10-2 การตดตงโปรแกรม Server Configuration Tools
รปท 10-3 การตดตงโปรแกรม Administration Tools
31
system-config-network / neat ชวยในการเปลยน IP
รปท 10-4 แสดงโปรแกรม system-config-network
system-config-display ชวยในการเปลยนความละเอยดของหนาจอ
รปท 10-5 แสดงโปรแกรม system-config-display
32
สวนการทำางานใน Text Mode ใหใชคำาสง setup
รปท 10-6 รปแสดงการใชคำาสง setup
รปท 10-7 แสดงการใชคำาสง setup เลอกเมน Network configuration
การเปลยนแปลงคา Network TCP/IP โดยการแกไฟลคอนฟก
33
ถาหากเราตองการเปลยน IP ของเครองโดยทเราไมใชเครองมอชวยกสามารถแกไฟลไดสะดวกเวลาทเราทำางานบน Text Mode
การเปลยน IP Address ไดเรกทอรทเกยวกบ Network ของ Red Hat อยท /etc/sysconfig/networkscripts/
[root@training1 ~]# cd /etc/sysconfig/networkscripts/[root@training1 networkscripts]# lsifcfgeth0 ifdownipv6 ifup ifupisdn ifupsitifcfglo ifdownisdn ifupaliases ifupplip ifupslifdown ifdownpost ifupippp ifupplusb ifupwirelessifdownaliases ifdownppp ifupipsec ifuppost init.ipv6globalifdownippp ifdownsit ifupipv6 ifupppp networkfunctionsifdownipsec ifdownsl ifupipx ifuproutes networkfunctionsipv6[root@training1 networkscripts]#
ไฟลทเราตองแกคอ 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 ททานใชบรการอย
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 ใหลดลงจากเดม
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-*
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 ขนมานนเอง
37
ยกเลกการเมาทเมอเมาทไดสำาเรจ จะตองยกเลกการเมาท การยกเลกการเมาท ใชคำาสง umount เชน CD-ROM จะเอาแผน
CD ออกไมไดถาไมยกเลกการเมาท หรออาจทำาความเสยหายใหกบอปกรณประเภท USB ไดการใชงาน umount umount option dir | device
ตวอยางการยกเลกการเมาทดวยคำาสง umountumount /mnt/fd0umount /mnt/cdromumount /mn/thumb
คำาสงทเกยวของในบทนmountumount
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 postgresql8.0.7.tar.gzpostgresql8.0.7/postgresql8.0.7/doc/postgresql8.0.7/doc/src/postgresql8.0.7/doc/src/FAQ/postgresql8.0.7/doc/src/FAQ/FAQ.html...[root@training1 ~]# ls ldrwxrwxrwx 6 70 70 4096 Feb 13 07:31 postgresql8.0.7
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 lrwrr 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
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 รวมดวย
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
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
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
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
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 ตอนทบทเครอง
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 ได
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
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 ดวย
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
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
51
เอาไฟลจากเครองทเราทำางานอยไปไวท serverroot@sothorn:~# sftp [email protected] to [email protected]'s password:sftp> put postgresql8.0.7.tar.gzUploading postgresql8.0.7.tar.gz to /root/postgresql8.0.7.tar.gzpostgresql8.0.7.tar.gz 100% 13MB 6.7MB/s 00:02sftp>
เอาไฟลจาก Server มาไวทเครองทำางานsftp>lsdovecot0.99.112.EL4.1.i386.rpmpostgresql8.0.7.tar.gz sftp> get dovecot0.99.112.EL4.1.i386.rpmFetching /root/dovecot0.99.112.EL4.1.i386.rpm to dovecot0.99.112.EL4.1.i386.rpm/root/dovecot0.99.112.EL4.1.i386.rpm 100% 601KB 600.7KB/s 00:01sftp>
การใชงาน sftp จากวนโดว บนวนโดวเราสามารถสงไฟลขนไปบนลนกซ หรอนำาไฟลจากลนกซลงมาทวนโดว โดยการตดตง sftp
client ซงมอยหลายโปรแกรม เชน WinSCP, SSH Secure File transfer Client
ตวอยางโปแกรม WinSCP
52
รปท 16-3 แสดงโปรแกรม winscp
โปแกรม SSH Secure File transfer Client
รปท 16-4 แสดงโปแกรม SSH Secure File transfer ClientSFTP แบบกราฟกบนลนกซ
53
บนลนกซกมโปรแกรมสำาหรบ sftp ไดแกโปรแกรม gftp
รปท 16-5 แสดงโปรแกรม gftpทกลาวมาทงหมดในบทนคงชวยใหทานสามารถทำางานกบลนกซไดสะดวกยงขน
คำาสงทเกยวของsshsftp
บทท 17
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 ของ userl แสดง crontab ของ userr ลบ 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 น.
ตวอยางการใชงานจรง
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
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 แสดงคำาสงทงหมดออกมา
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 (14)eSelected partition 4First cylinder (13544865, default 1354):Using default value 1354Last cylinder or +size or +sizeM or +sizeK (13544865, 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 รายละเอยดของการพารตชนออกมาด
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 (13544865, default 1354):Using default value 1354Last cylinder or +size or +sizeM or +sizeK (13544865, 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 reread partition table.
WARNING: Rereading 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
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 NonFS 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 (FAT12/16/11 Hidden FAT12 55 EZDrive a6 OpenBSD f0 Linux/PARISC 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: Rereading 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
60
การใชงาน mke2fsmke2fs [ c | l filename ] [ b blocksize ] [ f fragmentsize ] [ g blocks
pergroup ] [ i bytesperinode ] [j ] [ J journaloptions ] [ N numberofinodes ] [ n ] [ m reservedblockspercentage ] [ o creatoros ] [ O feature[,...] ] [ q ] [ r fsrevisionlevel ] [ R raidoptions ] [ v ] [ F ] [ L volumelabel ] [ M last
mounteddirectory ] [ S ] [ T filesystemtype ] [ V ] device [ blockscount ]
mke2fs O journal_dev [ b blocksize ] [ L volumelabel ] [ n ] [ q ] [ v ] externaljournal [ blockscount ]
[root@fdisk ~]# mke2fs j /dev/hda5mke2fs 1.35 (28Feb2004)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 ~]#
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
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
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
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
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 ไฟล
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 ทำาดหรอไม
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.
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
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
70zone "." IN { type hint; file "named.ca";};
zone "localdomain" IN { type master; file "localdomain.zone"; allowupdate { none; };};
zone "localhost" IN { type master; file "localhost.zone"; allowupdate { none; };};zone "0.0.127.inaddr.arpa" IN { type master; file "named.local"; allowupdate { 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"; allowupdate { none; };};
zone "255.inaddr.arpa" IN { type master; file "named.broadcast"; allowupdate { none; };};
zone "0.inaddr.arpa" IN { type master; file "named.zero"; allowupdate { none; };};
zone "ourintranet.net." IN { type master; file "ourintranet.net.db";};
zone "1.168.192.inaddr.arpa." IN { type master; file "192.168.1.db";};
ทดสอบไฟล /etc/named.confเราสามารถทดสอบไดวา ไฟล /etc/named.conf ทเราไดเพมเขาไปนนถกตองหรอไมโดยใชคำาสง
named-checkconf ตามดวยไฟล /etc/named.confตวอยางการณทมความผดพลาดเกดขน ถาไมมความผดพลาดกจะไมรายงานอะไรออกมา
71
[root@banban named]# namedcheckconf /etc/named.conf/etc/named.conf:30: unknown option 'asdad'/etc/named.conf:31: unexpected token near '}'
ถาไมมขอผดพลาด[root@banban named]# namedcheckconf /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.inaddr.arp.arpa. IN PTR www.ourintranet.net.2.1.168.192.inaddr.arp.arpa. IN PTR ftp.ourintranet.net.254.1.168.192.inaddr.arp.arpa. IN PTR gateway.ourintranet.net.
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
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 ~]#
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 ~]#
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
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
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)
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 ไดอยางไร
79
การตดตง Web Server + PHP การตดตงเวบเซรฟเวอรจาก Package ลองลนกซตระกล Red Hat ใหใช system-config-packages
จะดกวาใชคำาสง rpm เนองจากม package ทขนตอกนมาก[root@ourintranet ~]# systemconfigpackages
กด Details เลอก Package
รปท xx
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
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
82
สงทควรระวงถายงไมเขาใจเกยวกบการทำางานของ Firewall มากนกกใหปดการทำางานของ Firewall ไปกอน โดยใชคำาสง
[root@ourintranet ~]# systemconfigsecuritylevel
รปท xx
ให Disable firewall และ SELinux ไปกอนแลวคอยมาศกษาเรอง Filewall กนทหลงดงรป xxหรอจะใชคำาสง[root@ourintranet ~]# chkconfig iptables off[root@ourintranet ~]# service iptables stop
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 ไดแลว
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 phpMyAdmin2.8.2.4.tar.gz phpMyAdmin2.8.2.4/phpMyAdmin2.8.2.4/Documentation.txtphpMyAdmin2.8.2.4/CREDITSphpMyAdmin2.8.2.4/ChangeLogphpMyAdmin2.8.2.4/Documentation.htmlphpMyAdmin2.8.2.4/INSTALL...[root@ourintranet html]# lsphpMyAdmin2.8.2.4 phpMyAdmin2.8.2.4.tar.gz
เพอความสะดวกในการใชงานใหเปลยนชอ ไดเรกทอรใหสนลง
[root@ourintranet html]# mv phpMyAdmin2.8.2.4 phpMyAdmin
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';
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 ผานทางเวบ สามารถดาวนโหลดมาใชงานไดท
87
http://phppgadmin.sourceforge.net
ไฟลทดาวนโหลดมา phpPgAdmin-4.0.1.tar.gz เอาไปไวทไดเรคทอร /var/www/html แลวขยายไฟลออกมา จะได ไดเรกทอร phpPgAdmin-4.0.1 ใหเปลยนชอเปน phpPgAdmin เพอความสะดวกในการใชงาน[root@ourintranet ~]# lsphpPgAdmin4.0.1.tar.gz[root@ourintranet ~]# cp phpPgAdmin4.0.1.tar.gz /var/www/html/[root@ourintranet ~]# cd /var/www/html/[root@ourintranet html]# tar xvfx phpPgAdmin4.0.1.tar.gzphpPgAdmin4.0.1/phpPgAdmin4.0.1/CREDITSphpPgAdmin4.0.1/classes/...[root@ourintranet html]# mv phpPgAdmin4.0.1 phpPgAdmin
ทดสอบการใชงานโดยการเรยกผาน Browser http://www.ourintranet.net/phpPgAdminจะเหนวาเราไมสามารถ login เขาใชงานได มขอความเตอน Login disallowed for security reasons.
88
ตองมการแกไฟล config กอน[root@ourintranet html]# mv phpPgAdmin4.0.1 phpPgAdmin[root@ourintranet html]# cd phpPgAdmin/conf[root@ourintranet conf]# lsconfig.inc.php config.inc.phpdist[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;
ทดลอง
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 PHPNuke7.8ThaiEdition.zip Archive: PHPNuke7.8ThaiEdition.zip creating: PHPNuke7.8ThaiEdition/docs/ inflating: PHPNuke7.8ThaiEdition/docs/AddonsModules.txt...[root@ourintranet ~]# cd PHPNuke7.8ThaiEdition[root@ourintranet PHPNuke7.8ThaiEdition]# lsdocs html READMETHAI.txt sql upgrades[root@ourintranet PHPNuke7.8ThaiEdition]# cp r html /var/www/html/nuke[root@ourintranet PHPNuke7.8ThaiEdition]# cd sql[root@ourintranet PHPNuke7.8ThaiEdition]# 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
90
$dbhost = "localhost";$dbuname = "root";$dbpass = "mypassword";$dbname = "nuke";$prefix = "nuke";$user_prefix = "nuke";$dbtype = "MySQL";$sitekey = "S∙kQSd5%W@Y62dm29.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 แสดง
91
ถาคาคอนฟกถกตองกจะเหนดงรป xx
รปท xx แสดง
การเขาทำางานหนา Admin โดยการเรยก http://www.ourintranet.net/nuke/admin.php ถาเปนการเขาหนา Admin ครงแรก
รปท xx
92
รปท xxกจะเขาสหนาตางของ Admin
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*phpdevel4.3.93.1.i386.rpm phpmbstring4.3.93.1.i386.rpmphpdomxml4.3.93.1.i386.rpm phpncurses4.3.93.1.i386.rpmphpgd4.3.93.1.i386.rpm phpsnmp4.3.93.1.i386.rpmphpimap4.3.93.1.i386.rpm phpxmlrpc4.3.93.1.i386.rpm[root@ourintranet RPMS]# rpm Uvh phpgd4.3.93.1.i386.rpmwarning: phpgd4.3.93.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60ePreparing... ########################################### [100%]
1:phpgd ########################################### [100%][root@ourintranet RPMS]# service httpd restartStopping httpd: [ OK ]Starting httpd: [ OK ][root@ourintranet RPMS]#
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 อกครงหนง กจะ
95
รปท xxกด Try again กจะเขาสขนตอนการตดตง แตกอนทจะทำาอะไรตอใหไปสรางฐานขอมลกอน
[root@ourintranet cpg]# mysqladmin create cpg149 u root pmypassword
กรอกรายละเอยด
96
รปท xxกรอกรายละเอยดเรยบรอยแลว กดปม Let's Go สำาหรบ ImageMagick path เวนวางไวไดเพราะเราไมไดใช
รปท xx แสดง
97
รปท xx แสดง
การตดตง Drupal
98
Drupal เปน Content Management system (CMS) ทนาสนใจอกตวหนง ซงมความสามารถทางดาน weblog ดวย ดาวนโหลดไดท http://www.drupal.org
รปท xxไฟลทเราดาวนโหลดมาชอไฟล drupal-4.7.3.tar.gz
[root@ourintranet ~]# tar xvfz drupal4.7.3.tar.gz |moredrupal4.7.3/drupal4.7.3/database/drupal4.7.3/database/database.4.0.mysql...[root@ourintranet ~]# mv drupal4.7.3 /var/www/html/drupal
ถาเราจะทดลองดวา Drupal มโปแกรมสำาหรบตดตงหรอไม http://www.ourintranet.net/drupal
รปท xx แสดงวา Drupal ไมมโปรแกรมสำาหรบตดตงเราตองทำาการตดตงเองทงหมด
เรมแรกเราตองสรางฐานขอมล และนำาเขาฐานขอมล
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 สำาเรจนะครบ
100
บทท 22Postfix Mail Server
การทำางานของ postgfixการตดตง
โดยปกตด Red Hat หรอ Fedora จะมโปรแกรมทเปน MTA มาใหอยแลวนนกคอ sendmail เราสามารถตดตง postfix เขาไปไดเลยโดยทไมตองเอา sendmail ออก ถาหากเรายงไมไดตดตง Postfix ตงแตขนตอนการตดตงเรากสามารถใหคำาสง [root@ourintranet ~]# system-config-packages
101
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
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: messageid=<[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 เรยบรอย
104
[root@ourintranet ~]# chkconfig dovecot on[root@ourintranet ~]# service dovecot startการตดตง squirrelmail
squirerlmail เปนโปแกรมเวบเมลทเขยนดวย PHP ทตดตงงายมากตวหนง ดาวนโหลดไดท http://www.squirrelmail.org/ ไฟลทดาวนโหลดมา[root@ourintranet ~]# tar xvfz squirrelmail1.4.8.tar.gz squirrelmail1.4.8/squirrelmail1.4.8/ChangeLogsquirrelmail1.4.8/AUTHORS..[root@ourintranet ~]# mv squirrelmail1.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/
105
รปท xx
ถา Login สำาเรจ
รปท xx
106
บทท 23NFS Server
Network File System (NFS) พฒนาโดย Sun Microsystems ในป 1984 เปนโปรโตคอลทอนญาตใหคอมพวเตอรเขาถงไฟลและไดเรกทอรของเครองอนผานเนตเวอรคโดยทใชงงานงายเหมอนใชอยบนฮารดดสกของตวเอง
การตดตง NFS Serverลนกซ Red Hat หลงจากทเราตดตงตามปกตกสามารถใชงาน NFS ไดเลยเพราะ NFS
มาพรอมกบเคอรเนลอยแลว การทจะใชงาน NFS จำาเปนตองเปดเซอรวส portmap ดวยเพราะตองใชงาน
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 ของเราพรอมใชงาน ใหลกขายตดตอเขามาไดแลว
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 วธดงน
• กำาหนดดวยตนเอง ผบรหารระบบเครอขายเปนผกำาหนดหมายเลขไอพทตองการใชสำาหรบเครองลกขาย
109
โดยใชวธเทยบกบ MAC Address• แบบอตโนมต เซรฟเวอร DHCP จะจายหมายเลขไอพทวางอยใหกบลกขายโดยอตโนมต
ซงจะใชหมายเลขไอพชวงทผบรหารระบบกำาหนดใหใชได ไอพทจายจะถกใชอยางถาวร • แบบไดนามก วธนเปนวธเดยวทสามารถนำาหมายเลขไอพมาใชซำาได
เมอคอมพวเตอรถกเปดเครองและเรมทำางาน เครองลกขายจะขอหมายเลขไอพจากเซรฟเวอรโดยอตโนมต วธนตางกบแบบอตโนมตตรงทหมายเลขไอพในการทำางานแตละครง ไมจำาเปนตองเปนเลขเดม
การตดตง DHCP Serverโปรแกรมททำาหนาทเปน DHCP Server ดาวนโหลดและศกษาเพมเตมไดจาก http://www.isc.org/sw/dhcp/
แต DHCP Server มมากบลนกซ Red Hat อยแลวถายงไมไดตดตงตงแตแรก กสามารถตดตงเพมเตมได ดวยการใช system-config-package
[root@ourintranet ~]# systemconfigpackages
จะไดดงรป
รปท 24-1 แสดงเลอก Network Server คลก Detail เพอตดตงแพกเกจ DHCP คลกเลอก
110
รปท 24-2แลวกดปม Close
รปท 24-3
กด Continue โปรแกรมจะถามหาแผนตดตง Red Hat Linux เอง
111
รปท 24-5 แสดงใสแผนตดตงแลวกด OK
รปท 24-5 แสดงตดตงเสรจแลวกด OK เปนอนวาเราตดตง DHCP Server สำาเรจแลว
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/dhcp3.0.1/usr/share/doc/dhcp3.0.1/README/usr/share/doc/dhcp3.0.1/RELNOTES/usr/share/doc/dhcp3.0.1/dhcpd.conf.sample/usr/share/man/man1/omshell.1.gz/usr/share/man/man5/dhcpeval.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/dhcp3.0.1/dhcpd.conf.sample /etc/dhcpd.conf
แลวจงแกไฟลคอนฟกดวย Texteditor ทถนด
113
ddnsupdatestyle interim;ignore clientupdates;
subnet 192.168.0.0 netmask 255.255.255.0 {
# default gateway option routers 192.168.0.1; option subnetmask 255.255.255.0;
option nisdomain "domain.org"; option domainname "domain.org"; option domainnameservers 192.168.1.1, 203.155.33.1;
option timeoffset 18000; # Eastern Standard Time# option ntpservers 192.168.1.1;# option netbiosnameservers 192.168.1.1;# Selects pointtopoint node (default is hybrid). Don't change this #unless# you understand Netbios very well# option netbiosnodetype 2;
range dynamicbootp 192.168.0.128 192.168.0.254; defaultleasetime 21600; maxleasetime 43200;
# we want the nameserver to appear at a fixed address host ns { nextserver marvin.redhat.com; hardware ethernet 12:34:56:78:AB:CD; fixedaddress 207.175.42.254; }}
เปลยนคาของคอนฟกไฟลตามความตองการใชงานของเราซงสวนใหญสงทเราเปลยนกคอ IP Address เปลยนใหตรงกบทเราใชงานอย เชน
114
ddnsupdatestyle interim;ignore clientupdates;
subnet 192.168.1.0 netmask 255.255.255.0 {
# default gateway option routers 192.168.1.254; option subnetmask 255.255.255.0;
option nisdomain "ourintranet.net"; option domainname "ourintranet.net"; option domainnameservers 192.168.1.1;
option timeoffset 18000; # Eastern Standard Time# option ntpservers 192.168.1.1;# option netbiosnameservers 192.168.1.1;# Selects pointtopoint node (default is hybrid). Don't change this #unless# you understand Netbios very well# option netbiosnodetype 2;
range dynamicbootp 192.168.1.101 192.168.0.253; defaultleasetime 21600; maxleasetime 43200;
host computer1 { hardware ethernet 00:13:72:17:E7:65; fixedaddress 207.175.42.254; }}
ถาตองการการจาย IP Address แบบเปนชวง IP Address range dynamicbootp 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; fixedaddress 192.168.0.100; }
host computer2 { hardware ethernet 00:06:1B:D9:92:0C; fixedaddress 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 ได
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 จากเครองแมขายได
116
เครองลกขาย (DHCP Client)
สำาหรบเครองลกขายทเปนวนโดว ให กด Start ท Taskbar -->Setting-->Network Connections ดบเบลคลกท ไอคอน Local Area Connection กจะไดดงรป xx คลกท Properties
รปท 24-7 แสดง
คลกท Properties จะไดดงรป xx ดบเบลคลกท Internet Protocal(TCP/IP)
รปท 24-8 แสดง
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 กใหคลกปม
118
Detail กจะเหนรายละเอยดมากขน ดงรป xx
รปท xx รปแสดงหรออกวธหนง ทจะดรายละเอยดของการรบ IP Address มา ท Taskbar กด Start--> Run.. พมพ cmd
เมอขนหนาตางคำาสงมาใหพมพ ipconfig /all กจะเหนรายละเอยดดงรป xx
รปท xx แสดง
119
Linux Red Hat DHCP Clientบนลนกซตระกล Red Hat สามารถเปลยนใหรบ DHCP ไดโดย
[root@dhcpclient ~]# systemconfignetwork
เลอก eth0 แลวคลก ท Edit
รปท xxแลวเลอก Automatically obtain IP address settings with dhcp
120
หรอจะแกไฟล[root@dhcpclient ~]# vi /etc/sysconfig/networkscripts/ifcfgeth0
เดม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 ทอยหลงสดมาใหกอน
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 มาใหอยแลว แตอาจจะไมใชเวอรชนลาสด
122
123
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
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
คลกทน
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.hospitalos.com/ DIRECT/61.47.4.49 text/html1160104419.647 171 192.168.1.6 TCP_MISS/200 5437 GET http://www.hospitalos.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/xjavascript1160104420.024 91 192.168.1.6 TCP_MISS/200 8872 GET http://www.hospitalos.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 เอาไวบรรรทดลางสดเลยกได
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 toport 3128 [root@ourintranet ~]# service iptables save[root@ourintranet ~]# service iptable restart
หลงจากนนกใหเครองลกขายช gateway มาท Proxy server
ภาพท xx
แตวธการน ใช iptables แคบรรทดเดยวไมปลอดภยอยาใชเลยครบรไวประดบความรกพอ ใหอานบทตอไปการใช Arno's Script
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 arnoiptablesfirewall_1.8.6c.tar.gzarnoiptablesfirewall_1.8.6c/arnoiptablesfirewall_1.8.6c/arnofwfilterarnoiptablesfirewall_1.8.6c/arnofwfilter.1...[root@ourintranet ~]# cd arnoiptablesfirewall_1.8.6c[root@ourintranet arnoiptablesfirewall_1.8.6c]# lsarnofwfilter arnoiptablesfirewall.8 arnomultiroute.sh Gentoo Redhatarnofwfilter.1 arnoiptablesfirewall.conf CHANGELOG gpl_license.txt Slackwarearnoiptablesfirewall arnoiptablesfirewall.conf.example Debian README
หลงจากท แตกไฟลแตกไฟลออกมาแลวกจะเหนมไฟลเยอะแยะไปหมด ใหสนใจแค 2 ไฟลกอนไฟลแรกคอ arnoiptablesfirewal copy ไปไวท /etc/init.d
[root@ourintranet arnoiptablesfirewall_1.8.6c]# cp arnoiptablesfirewall /etc/init.d
ไฟลท 2 arno-iptables-firewall.conf copy ไปไวท /etc [root@ourintranet arnoiptablesfirewall_1.8.6c]# cp arnoiptablesfirewall.conf /etc
ใชคำาสงให script ทำางานตงแตบท และไมให iptables ทำางานตอนบท[root@ourintranet arnoiptablesfirewall_1.8.6c]# chkconfig iptables off[root@ourintranet arnoiptablesfirewall_1.8.6c]# chkconfig arnoiptablesfirewall /etc/init.d on
ถงตอนน ยงไมพรอมทจะให script ทำางานตองแกไฟล /etc/arno-iptables-firewall.conf
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
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 ออกไปขางนอกวาใชงานไดหรอไม
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
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
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:0016: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
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 ~]#
135
ทดลองการแชรไฟลกลบมาทวนโดว มาทดลองดวาสงทเราทำาไปบน server ใชไดหรอเปลา \\192.169.1.1
รปท xx แสดงกจะขน Username password
รปท xx แสดง
136
กจะเหน Folder piti ซงเปนโฮมไดเรกทอรของ user piti นนเอง
รปท xx แสดง
เมอเขามาดใน Folder กจะเหนไฟลตางทอยบนลนกซ
รปท xx แสดง
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
138
รปท xx
กรณตวอยางนำามาใชงาน มบรษทหนง ม 4 แผนกดงน
1. ฝายประชาสมพนธ (pr) มพนกงาน 1 คน คอ somsri2. ฝายเวบไซต (web) มพนกงาน 2 คน คอ somchai, suchart3. ฝายขาย (sale) มพนกงาน 1 คน คอ somwang4. ฝาย (support) มพนกงาน 1 คน saismorn
ตองการใช Samba ทำาไฟล Server โดยมไดเรคทอรทแชร ตามชอแผนกคอ pr, web, sale และ support โดยทม ผจดการ (manager) สามารถเขาไปใชงานไดทกไดเรกทอร และไฟลทผจดการสรางขนในทกๆ ไดเรกทอรลกนองทกฝายสามารถนำาไปใชงานไดมาดขนตอนการสรางไดเรคทอร
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/*
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 ~]#
141
ทดลองใชงานโดยใช user manager Login เขามา
รปท xx
User manager จะสามารถเขาใชงานไดทก Folder
รปท xx
142
รปท xx
ทดลองสรางไฟลใหมใน folder pr และ folder อนๆ กสามารถทำาได
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) แตอยางใด
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
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
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.101.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: \>
147
Samba Linux Client บนลนกซแบบการฟก
สำาหรบ Ubuntu ใหไปท เมน ทหลกๆ -->เซรฟเวอรในเครอขาย
รปท XX
ดบเบลคลกเครอขายวนโดว
รปท xx
148
ดบเบลคลกท mygroup ซงมาจากไฟลคอนฟกของ Samba ในสวน [global] นนเอง workgroup = MYGROUP ซงเปนชอของ workgroup นนเอง
รปท xx
ดบเบลคลกท mygroup กจะพบกบชอของ เครองทเปด Server Samba อยในทนคอ ourintranet ถาเรามเครองวนโดวทอยใน workgroup เดยวกนกจะเหนมชอเครองอยเชนเดยวกน
รปท xx
149
หลงจากทดบเบลคลกทชอเครอง ourintranet เขามาแลวเรากจะเหนไดเรกทอรทเราแชรเอาไว
รปท xxดลเบลคลกท ไอคอน sale แลว login ดวย user manager
รปท xxดวยสทธของ mamager กสามารถเขาไปเขยนไฟลได
รปท xx
150
Recommended