เรื่องของเรื่องมีอยู่ว่า เจ้าเครื่องที่ทำหน้าที่เป็น FTP ของคณะ HDD มันเริ่มรวนๆมีเสียงแปลกๆออกมาด้วย ด้วยความที่เป็นผู้ดูแลระบบเราจึงไม่สามารถนิ่งนอนใจอยู่ได้(ภายนอกอาจจะดูเหมือน ชิว แต่ลึกๆนี่สิ..) เลยลอง repair windows ให้มันก่อนแล้วลอง set ค่า ftp บน iis ใหม่ ซึ่งก็ทำได้ แต่การใช้งานก็ยังเหมือนคนป่วย คือ ไม่สามารถทำงานได้เต็มที่ว่างั้นเถอะ !!! ผมจึงมีความคิดว่าเดี๋ยวมันเจ้งอีกแน่ลงบน ubuntu server ไปเลยดีกว่าเพราะเหนื่อยเวลามาตามแก้ทีหลัง
โดยไปดาวน์โหลด ubuntu server 12.04.1 lst มาจาก http://www.ubuntu.com/download/server จากนั้น write file ใส่แผ่นแล้วติดตั้งเลย เมื่อติดตั้งเสร็จแล้วก็อัพเดทโดยคำสั่ง sudo apt-get update จากนั้นก็เริ่มลงมือติดตั้ง vsftpd ด้วยคำสั่ง sudo apt-get install vsftpd ซึ่งเมื่อติดตั้งแล้วคุณจะสามารถใช้งาน ftp ผ่าน filezilla ได้หากต้องการแค่นั้น แต่หากต้องการให้ผู้ใช้งานทั่วไปสามารถดาวน์โหลดได้ด้วยจากหน้าเว็บต้องติดตั้ง apache ด้วยเพื่อการทำงานผ่าน http นั่นเอง โดยติดตั้ง apache ดังนี้ sudo apt-get install apache2 apache2-doc ซึ่งเมื่อติดตั้งทั้งสองอย่างแล้วให้ไปตรวจสอบดูระบบจะสร้าง directory /srv/ftp (ของ vsftpd) กับ /var/www (ของ apache) ให้ จากนั้นให้สร้างกลุ่มผู้ใช้งานก่อนเพื่อกำหนดสิทธิ์ในการใช้งานได้โดยง่ายด้วยคำสั่ง groupadd ftparts (ของผมเป็น ftparts) จากนั้นก็เพิ่ม user ที่จะใช้งาน ftp
โดยคำสั่ง useradd -g ftparts -d /srv/ftp/ir -m -s /bin/sh ir (-g คือกลุ่มที่จะเพิ่ม ที่นี้คือ ftparts -d คือ directory ที่เราจะกำหนดให้ user นั้นเข้าไปเจอเมื่อ ftp เข้าไป -m คือให้ตรวจสอบว่ามีการสร้าง directory /srv/ftp/ir ให้หรือยัง (หรืออาจไม่ใช้ -m ก็ได้ไม่บังคับ) -s การสร้าง shell เริ่มต้นให้กับ user ไม่มีก็ได้หากจะใช้แค่ ftp ) จากนั้นทำการกำหนดรหัสผ่านให้ กับ user โดยคำสั่ง passwd ir แล้วพิมพ์รหัสผ่านลงไป 2 ครั้งเพื่อยืนยันความถูกต้อง จากนั้นให้ใช้คำสั่ง เข้าไป config ไฟล์ /etc/vsftpd.conf ไปแก้ค่าต่างๆดังนี้ โดยเอาเครื่องหมาย # นำหน้าบรรทัดเหล่านี้ออก หากบางอันนำออกแล้ว แต่สถานนะ yes หรือ no ไม่เหมือนก็ให้ปรับ
listen=YES //ให้มันรับการร้องขอใช้งาน
anonymous_enable=YES //อนุญาตให้ anonymous เข้ามาใช้งานได้ (ถ้าไม่อนุญาตก็ให้ใส่เป็น no)
local_enable=YES //อนุญาตให้ user ที่เราสร้างไว้เข้ามาใช้ อันนี้ต้องให้เป็น yes
write_enable=YES //อนุญาติให้สามารถเขียนไฟล์ได้บน ftp หากเราจะให้มีการ เพิ่มลบแก้ไขข้อมูลบน ftp ก็ต้องตอบ yes นะครับ เพราะ user จะได้สามารถ อัพโหลดข้อมูลต่างๆได้
จากนั้นให้ใช้คำสั่ง grep “^[^#]” /etc/vsftpd.conf (ผมก็ไป copy เค้ามาใช้เหมือนกัน แต่ไม่รู้เอามาจากใหนนานมากแล้ว) ซึ่งจะไป เก็บข้อมูลบรรทัดที่ไม่มีเครื่องหมาย # หากได้เหมือนข้างล่างแสดงว่า ftp ของคุณพร้อมใช้งานแล้ว
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
จากนั้นให้ทำการ restart service vsftpd ด้วยคำสั่ง service vsftpd restart ไม่ต้องเข้าไป /etc/init.d/vsftpd เหมือนเวอร์ชั่นก่อนก็ได้
จากนั้นใช้คำสั่ง ls -la /srv/ftp/ มันจะเป็นแบบนี้ drwxr-xr-x 2 root root 4096 Nov 22 09:35 ir ให้เราเปลี่ยน group และ owner ให้เป็นของ user ir และ group ftparts เพื่อคนอื่นจะได้ไม่สามารถเข้าไปเปลี่ยนแปลงสิ่งที่อยู่ในนั้นได้ดังนี้
chgrp ftparts -R ir //เปลี่ยน กลุ่มที่เป็นเจ้าของ directory ir จาก root เป็น ftparts -R หมายความว่าทำทั้ง directory
chown ir -R ir //เปลี่ยน เจ้าของ directory จาก root เป็น ir -R หมายความว่าทำทั้ง directory
ถึงตอนนี้ลองใช้ filezilla ftp เข้าไปดูที่ ip ของ server ที่เราตั้งขึ้นโดยใช้ user และ password ir ที่เราตั้งไว้ก็จะมองเป็นจาก /srv/ftp/ir ซึ่งสามารถเพิ่มลบแก้ไขไฟล์ได้หมด โดยหากใช้ anonymous จะไม่สามารถ ftp ผ่าน filezilla ได้ซึ่งถือว่าโอเค(แต่เราจะให้ anonymous โหลดได้นี่สิเราจึงต้องใช้ apache) หากตรงนี้ไม่มีปัญหาให้ผ่านไปได้เลยหากพบปัญหาให้กลับไปเช็คความเรียบร้อยของ /etc/vsftpd.conf และ permission ของ directory ir ใน /srv/ftp/ir ใหม่ว่าได้เปลี่ยนหรือยัง
หากผ่านขึ้นตอนข้างบนมาแล้วให้ใช้คำสั่ง ln -sf /srv/ftp/ir /var/www เพื่อสร้างการเชื่อมโยงระหว่าง /srv/ftp/ir กับ /var/www ซึ่งระบบจะไปสร้าง shortcut ir ที่ฝั่ง /var/www/ โดยที่เราไม่ต้องไปใช้คำสั่ง mkdir เลย และหากต้องการตรวจสอบว่า การเชื่อมโยงนั้นไปถึงฝั่งนู้นหรือยังให้ตรวจสอบโดย ls -la /var/www จะได้ผลแบบนี้ lrwxrwxrwx 1 root root 11 Nov 22 10:31 ir -> /srv/ftp/ir จากนั้นก็ให้เราเปลี่ยนสิทธิ์แบบ directory ใน /srv/ftp/ir ตามคำสั่งข้างบนได้เลยครับ ซึ่งทีนี้เมื่อเราไปเปิดเว็บบราว์เซอร์แล้วพิมพ์ ip address ผ่าน url ไปยัง server ของเราเราก็จะสามารถดาวน์โหลดข้อมูลได้แล้วครับ
บทความนี้ต้องขอบคุณบุคคลดังต่อไปนี้ที่ให้คำปรึกษา
พี่วิบูลย์
พี่คณกรณ์
พี่ป้อม ทันตะ
อ.ฉัตรชัย
และหากสงสัยก็สามารถทิ้งข้อความได้นะครับจะเข้ามาดูเรื่อยๆครับ