WordPress file owner and permission

ตอนนี้เราควรให้ความสำคัญกับความปลอดภัยของเว็บไซต์ wordpress โดยการตั้งค่าสิทธิของไดเรกทอรีและไฟล์มากขึ้นเพราะมีข่าวที่เว็บไซต์มีช่องโหว่แล้วถูกฝังโค้ด เช่น แต่เดิมเราติดตั้ง wordpress ไว้ในไดเรกทอรี /var/www/wordpress แล้วเพื่อให้ทำงานติดตั้ง plugins เพิ่ม ปรับแต่งหน้าเว็บด้วย themes ใหม่ๆ หรือการอัปโหลดรูปภาพและสื่อ รวมทั้งการ upgrade เวอร์ชั่นของ wordpress ทำได้สะดวกง่ายๆ ด้วยการกำหนดสิทธิอย่างง่ายคือ sudo chown -R www-data.www-data /var/www/wordpress ก็ใช้งานได้แล้ว แต่ดูเหมือนว่าสักวันหนึ่งเราอาจจะเป็นเหยื่อได้ ผมได้คุยกับน้องใหญ่ แล้วก็ลงความเห็นกันว่า เราควรตั้งค่า file owner และ file permission ให้มันเข้มขึ้นแต่ยังสะดวกในการทำงานติดตั้งอะไรๆได้ด้วย ก็เป็นที่มาของคำสั่งข้างล่างนี้ อันดับแรกก็จะต้องกำหนด file owner กันก่อน ถ้า ubuntu server ของเรา ใช้ username คือ mama และมี group ชื่อ adm ซึ่งเป็นชื่อ group ที่มีสิทธิทำอะไรได้มากกว่า user ธรรมดา ก็ใช้ mama:adm นี้ได้ หรือจะใช้ mama:mama ก็ได้ครับ (ที่เป็น adm ก็เผื่อไว้ว่าวันหนึ่งเราอาจจะเพิ่ม username สักคนเข้าใน groupname adm นี้ก็เท่านั้นเอง) ดังนี้ sudo chown -R mama:adm /var/www/wordpress sudo chown -R mama:adm /var/www/wordpress/wp-content/ ถัดมาก็กำหนด file owner ที่ให้สิทธิ apache web server ซึ่งใช้ username คือ www-data และ groupname คือ www-data เพียงแค่ไดเรกทอรีที่จำเป็น ดังนี้ sudo chown -R mama:www-data /var/www/wordpress/wp-content/plugins sudo chown -R mama:www-data /var/www/wordpress/wp-content/themes sudo chown -R mama:www-data /var/www/wordpress/wp-content/upgrade sudo chown -R mama:www-data /var/www/wordpress/wp-content/uploads ถัดไปก็กำหนด file permission ให้กับไดเรกทอรีเหล่านี้ด้วย (ผมเพิ่ม -R ลงไปในคำสั่งด้านล่างนี้ด้วยแล้ว) ดังนี้ chmod -R 775 /var/www/wordpress/wp-content/plugins chmod -R 775 /var/www/wordpress/wp-content/themes chmod -R 775 /var/www/wordpress/wp-content/upgrade chmod -R 775 /var/www/wordpress/wp-content/uploads สุดท้าย เราต้องแก้ไขไฟล์ชื่อ wp-config.php ด้วยนะ เหตุผลตรงนี้คือ เราไม่ต้องการติดตั้งแบบที่มันจะถาม ftp user แต่ต้องการให้ติดตั้งได้อัตโนมัติ ให้แก้ไขดังนี้ sudo vi /var/www/wordpress/wp-config.php โดยให้แทรกบรรทัด define(‘FS_METHOD’, ‘direct’); ไว้ก่อนบรรทัดนี้ อยู่ประมาณ 10 บรรทัดนับจากท้ายไฟล์ครับ /* That’s all, stop editing! Happy blogging. */ ผมคิดว่าหากเป็น CMS ตัวอื่นๆ ก็คงใช้แนวทางเดียวกันนี้ได้ ขอจบเพียงเท่านี้ และขอขอบคุณข้อมูลจากคุณเกรียงไกร หนูทองคำ ครับ

Read More »

ตัวอย่างการใช้งาน mutt เพื่อส่ง email แบบ command line

เมื่อต้องการส่ง email ด้วย command line วิธีที่ถูกต้องที่สุด ไม่ผูกติดกับ email client program บน Linux คือการสร้างไฟล์ แล้วส่งผ่าน sendmail ไม่ว่าจะเป็น original sendmail หรือ backward-compatibility ของ postfix ก็ตาม (จะกล่าวในอีกบทความหนึ่ง) แต่หากต้องการความง่าย ก็ลองใช้วิธีนี้ดูครับ ผ่านโปรแกรมชื่อ mutt ตัวอย่างคือ 1. ส่ง email ไปให้ username.s@xxx.psu.ac.th 2. บอกว่า ส่งจาก IT Department ซึ่ง email address เป็น blah@itdept.xxx.psu.ac.th 3. มี Subject ว่า This is Subject 4. แนบไฟล์ชื่อ test.txt 5. แต่จดหมายนี้ ไม่ต้องการให้ผู้ใช้ตอบกลับ จึงส่งให้ no-reply@xxx.psu.ac.th เพื่อโยนทิ้งทันที 6. เนื้อความ ว่า Hello World   สามารถใช้คำสั่งต่อไปนี้ export REPLYTO=”no-reply@xxx.psu.ac.th”; export EMAIL=”IT Department <blah@itdept.xxx.psu.ac.th>”; echo “Hello World” | mutt -s “This is Subject” -a test.txt — kanakorn.h@psu.ac.th

Read More »

บันทึกการสร้าง LVM Partition

เนื่องจากมี disk ขนาดแค่ 560 GB หลายลูก แต่ต้องการเอามารวมกันให้เป็น Volume ใหญ่ๆ และไม่ใช้ RAID เขียนเป็นบันทึกเก็บไว้ จึงอยากเอามานำเสนอ เผื่อเป็นประโยชน์ 1. มี /dev/sdb , /dev/sdc , /dev/sdd ก้อนละ 560 GB อยู่ ต้องทำ LVM เป้าหมายคือ ต้องการได้ Device สำหรับการ mount ชื่อ /dev/virtual1/logical1 reference: http://www.howtoforge.com/linux_lvm http://www.linuxquestions.org/questions/linux-hardware-18/lvcreate-with-max-size-available-749253/ 2. ติดตั้ง lvm software ด้วยคำสั่ง apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs 3. สร้าง partition ใน physical disk ให้เป็นของ LVM Partition sudo su fdisk /dev/sdb Command (m for help): n Partition type: p Partition number (1-4, default 1): 1 First sector (2048-1073741823, default 2048): Last sector, +sectors or +size{K,M,G} (2048-1073741823, default 1073741823): Command (m for help): t Hex code (type L to list codes): 8e Command (m for help): w ทำเช่นเดียวกับกับทั้ง /dev/sdc, /dev/sdd 4. ต่อไป สร้าง Physical Volume ของ LVM pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 pvdisplay 5. ต่อไป สร้าง Group Volume ของ LVM vgcreate virtual1 /dev/sdb1 /dev/sdc1 /dev/sdd1 vgdisplay vgscan 6. ต่อไป สร้าง Logical Volume ของ LVM (เต็มพื้นที่ที่มี) lvcreate –name logical1 -l 100%Free virtual1 lvdisplay lvscan 7. ต่อไป สร้าง Filesystem แบบ ext4 mkfs.ext4 /dev/virtual1/logical1 8. แก้ fstab แล้ว mount vi /etc/fstab /dev/virtual1/logical1 /var/spool/mailbackup ext4 rw,noatime 0 0 mount -a

Read More »

elvisnox: text is invisible in black background xterm

*Ubuntu 13.04 แก้ปัญหานี้แล้วครับ หลังจากเข้าร่วม ติว “VirtualBox Networking + vi + Shell Scripts” ก็ติดใจใช้แต่ elvis (elvis เป็น vi editor ชนิดหนึ่ง http://fivedots.coe.psu.ac.th/~cj/LUG/vi.pdf สามารถติดตั้งเพิ่มโดยใช้คำสั่ง $sudo apt-get install elvis ซึ่งเมื่อติดตั้งแล้ว elvis จะกลายเป็น default editor ทันที ดูได้จากคำสั่ง $sudo update-alternative –config editor ดังรูป ) มาโดยตลอด ติดอยู่อย่างเดียวคือ เมื่อติดตั้งแล้ว เมื่อเปิด vi ขึ้นมาพบว่าหน้าจอเป็นสีดำทั้งหมด ก็ต้องมาเปลี่ยนสีของ terminal เพื่อให้อ่านออกเป็นแบบนี้ อีกวิธีไม่ต้องแก้สีของโปรไฟล์ คือ แก้ค่าในแฟ้ม /etc/elvis/elvis.clr $sudo vi /etc/elvis/elvis.clr ให้มองหาข้อความ case termcap { แล้วแก้ตรงบรรทัดที่เขียนว่า color normal yellow or black เป็น color normal yellow on black เซฟแล้วลองเรียก vi ใหม่ได้ผลดังนี้ สงสัยจะใส่ค่า config ผิดตั้งแต่ตัวติดตั้ง ขอให้สนุกครับ ที่มา http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474202

Read More »