วิธีติดตั้ง vsftpd บน ubuntu server 12.04.1 LTS 64 bit

เรื่องของเรื่องมีอยู่ว่า เจ้าเครื่องที่ทำหน้าที่เป็น 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 ของเราเราก็จะสามารถดาวน์โหลดข้อมูลได้แล้วครับ

บทความนี้ต้องขอบคุณบุคคลดังต่อไปนี้ที่ให้คำปรึกษา

พี่วิบูลย์
พี่คณกรณ์
พี่ป้อม ทันตะ
อ.ฉัตรชัย

และหากสงสัยก็สามารถทิ้งข้อความได้นะครับจะเข้ามาดูเรื่อยๆครับCool