อธิบายคำสั่ง chmod บน Linux

chmod เป็นคำสั่งบน Linux ที่ใช้สำหรับกำหนดสิทธิ์ read, write หรือ execute ให้กับ file หรือ directory ว่าจะให้มีสิทธิ์ใช้งานแบบไหน และใช้งานโดยใครได้บ้าง

หลายๆ ท่านอาจจะเคยเจอคำสั่ง chmod 644, chmod 755 หรือ chmod 777 อะไรทำนองนี้ วันนี้เรามาดูกันครับ ว่ามันมีความหมายอย่างไร

เริ่มกันที่คำสั่ง ls -l

ก่อนจะพูดถึงคำสั่งที่ใช้สำหรับกำหนดสิทธิ์ เรามาดูกันที่คำสั่งสำหรับแสดงสิทธิ์กันก่อนครับ โดยคำสั่งที่เราจะใช้คือ คำสั่ง ls -l ที่จะช่วยให้คุณทราบว่า file หรือ directory นั้นใครเป็นเจ้าของ และ file หรือ directory นั้นถูกกำหนดสิทธิ์ไว้อย่างไร โดยผลลัพธ์ของคำสั่ง ls -l จะหน้าตาเป็นแบบนี้ครับ

-rwxrwx— 1 user group 1293 Jun 3 20:34 file_name

drw-rw-rw- 1 user group 4096 Jun 3 20:34 dir_name

ซึ่งผลลัพธ์ที่ว่านี้จะบอกเราว่ารายการไหนเป็น file หรือ directory, มีสิทธิ์ read, write หรือ execute โดย user และ group ไหนบ้าง, file มีขนาดเท่าไหร่, ถูกแก้ไขล่าสุดตอนไหน, file หรือ directory นั้นมีชื่อว่าอะไร ซึ่งผลลัพธ์แต่ละ column มีความหมายดังนี้

column1 บอกว่าเป็น file (-) หรือ directory (d) พร้อมทั้งบอกสิทธิ์การ read, write และ execute

column2 แสดงจำนวน hard link ของไฟล์ หรือ แสดงจำนวน subdirectory

column3 แสดงชื่อ user ที่เป็นเจ้าของ file หรือ directory

column4 แสดงชื่อ group ที่เป็นเจ้าของ file หรือ directory

column5 แสดงขนาดของ file มีหน่วยเป็น byte หรือหากเป็น directory จะแสดงเป็น 4096

column6 แสดงวันที่ และเวลาที่แก้ไขล่าสุด

column7 แสดงชื่อของ file หรือ directory

ซึ่งในบทความนี้เราจะให้ความสนใจไปที่ column 1, 3 และ 4 ครับ

อธิบาย Column1 -rwxrwxrwx

-rwxrwxrwx จะแบ่งออกได้เป็น 4 ส่วนดังนี้

– | rwx | rwx | rwx

ส่วนที่1 บอกกว่าเป็น file หรือ directory โดยจะแสดง เมื่อเป็น file และจะแสดง d เมื่อเป็น directory

ส่วนที่2 บอกสิทธิ์การ read, write และ execute ของ user ที่เป็นเจ้าของ file/directory

ส่วนที่3 บอกสิทธิ์การ read, write และ execute ของ group ที่เป็นเจ้าของ file/directory

ส่วนที่3 บอกสิทธิ์การ read, write และ execute ของ other หรือ user อื่นๆ ที่ไม่ใช่เจ้าของ file/directory และไม่ได้อยู่ใน group

ตัวอย่าง และความหมาย

-rwx—— แบ่งเป็น -|rwx|—|—

  • – = เป็น file
  • rwx = user สามารถ read write execute ได้
  • — = group ไม่สามารถ read write execute ได้
  • — = other ไม่สามารถ read write execute ได้

-rw-rw—- แบ่งเป็น -|rw-|rw-|—

  • – = เป็น file
  • rw- = user สามารถ read write ได้, แต่ไม่สามารถ execute
  • rw- = group สามารถ read write ได้, แต่ไม่สามารถ execute
  • — = other ไม่สามารถ read write execute ได้

-rwxrwxr-x แบ่งเป็น -|rwx|rwx|r-x

  • – = เป็น file
  • rwx = user สามารถ read write execute ได้
  • rwx = group สามารถ read write execute ได้
  • r-x = other สามารถ read execute ได้, แต่ไม่สามารถ write

drw-rw-r– แบ่งเป็น d|rw-|rw-|r–

  • d = เป็น directory
  • rw- = user สามารถ read write ได้, แต่ไม่สามารถ execute
  • rw- = group สามารถ read write ได้, แต่ไม่สามารถ execute
  • r– = other สามารถ read ได้, แต่ไม่สามารถ write และ execute

drwxrwxr-x แบ่งเป็น d|rwx|rwx|r-x

  • d = เป็น directory
  • rwx = user สามารถ read write execute ได้
  • rwx = group สามารถ read write execute ได้
  • r-x = other สามารถ read execute ได้, แต่ไม่สามารถ write

ความเกี่ยวข้องของ rwxrwxrwx และ ตัวเลข 644 755 777 ฯลฯ

หลังจากที่เราเข้าใจกันไปแล้วว่า rwxrwxrwx เราสามารถแบ่งได้เป็นสิทธ์ของ user, group และ other ซึ่งนับได้ 3 กลุ่ม ซึ่งเท่ากับจำนวนตัวเลขของเราที่มี 3 ตัวพอดีครับ นั่นคือตัวเลขแต่ละตัว บ่งบอกสิทธิ์ของแต่ละกลุ่มนั่นเอง

วิธีการแปลง rwxrwxrwx เป็นตัวเลข

เราจะแทนค่า rwx ด้วยตัวเลขดังนี้ r=4, w=2, x=1, -=0 เช่น

rwx——

=[rwx][—][—]

=[4+2+1][0+0+0][0+0+0]

=700

-rw-rw—-

=[rw-][rw-][—]

=[4+2+0][4+2+0][0+0+0]

=660

rwxrwxr-x

=[rwx][rwx][r-x]

=[4+2+1][4+2+1][4+0+1]

=775

rw-rw-r–

=[rw-][rw-][r–]

=[4+2+0][4+2+0][4+0+0]

=664

การใช้คำสั่ง chmod

หนึ่งในรูปแบบการใช้คำสั่ง chmod ที่เราคุ้นเคยกัน ได้แก่ การใช้คำสั่ง chmod ที่ตามด้วยตัวเลข 3 ตัว เช่น

หรือใช้สัญลักษณ์ user, group, other, read, write, execute ดังนี้ก็สะดวกดีครับ

ตัวอย่าง

ตัวอย่างที่ 1. กำหนดให้ทุก user สามารถ read, write, execute ได้

หรือ

ตัวอย่างที่ 2. กำหนดให้ user ที่เป็นเจ้าของ และ user ที่อยู่ใน group สามารถ read, write, execute ได้ ส่วน user อื่นๆ กำหนดให้ไม่มีสิทธิ์ใดๆ

หรือ

ตัวอย่างที่ 3. กำหนดให้ user ที่เป็นเจ้าของสามารถ read, write, execute ได้ ส่วน user ใน group สามารถ read, execute ได้ ส่วน user อื่นๆ กำหนดให้ไม่มีสิทธิ์ใดๆ

หรือ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีดาวน์โหลดและติดตั้ง Arduino IDE บน Ubuntu

ขั้นตอนการดาวน์โหลด

1. เข้าไปยังเว็บไซต์หลักของ Arduino เพื่อดาวน์โหลด Arduino IDE โดยคลิกที่นี่ https://www.arduino.cc/en/main/software

2. เมื่อเข้าเว็บไซต์มาแล้ว ให้คลิกดาวน์โหลดที่ Linux 32 bits หรือ Linux 64 bits อย่างใดอย่างหนึ่ง (ขึ้นอยู่กับเวอร์ชั่น Ubuntu ของคุณเป็นแบบ 32 bits หรือ 64 bits)

3.หลังจากที่คุณคลิกดาวน์โหลดแล้ว หน้าเว็บไซต์จะเปลี่ยนไปเป็นหน้า Donate (บริจาค) และจะมี 2 ปุ่มให้คุณเลือกคลิกครับ

  1. ปุ่ม JUST DOWNLOAD คือ ดาวน์โหลดอย่างเดียว
  2. ปุ่ม CONTRIBUTE & DOWNLOAD คือ บริจาคเงินจากนั้นค่อยดาวน์โหลด

ซึ่งตรงนี้คุณจะเลือกคลิกที่ JUST DOWNLOAD หรือ CONTRIBUTE & DOWNLOAD ก็แล้วแต่คุณครับ คลิกปุ่มใดปุ่มหนึ่งได้เลย

จากนั้นก็เบราเซอร์ของคุณก็จะเริ่มดาวน์โหลด และหากเบราเซอร์ของคุณไม่ถามว่าจะให้บันทึกไฟล์ไว้ที่ไหน ไฟล์ก็มักจะถูกบันทึกไว้ที่ไดเรคทอรี่ชื่อว่า Downloads ครับ

ขั้นตอนการติดตั้ง

เมื่อคุณดาวน์โหลดไฟล์เสร็จแล้ว คุณจะได้ไฟล์ชื่อว่า arduino-version-linux32.tar.xz หรือ arduino-version-linux64.tar.xz ซึ่งเป็นไฟล์ที่ถูกบีบอัดไว้ คุณต้องแยกไฟล์ออกมา โดยกดปุ่มลัดบนคีบอร์ด Alt + Ctrl + T เพื่อเรียกโปรแกรม Terminal ขึ้นมา และพิมพ์คำสั่งดังต่อไปนี้ลงไปครับ

1. สร้างไดเรคทอรี่ชื่อ bin ไว้ในไดเรคทอรี่ home สำหรับเก็บไฟล์โปรแกรม Arduino IDE

2. แยกไฟล์ arduino-version-linux.tar.xz ไปไว้ที่ไดเรคทอรี่ bin

แก้ your-download-path เป็นชื่อไดเรคทอรี่ที่คุณดาวน์โหลดไฟล์เก็บเอาไว้ เช่น Downloads

แก้ arduino-version-linux.tar.xz เป็นชื่อไฟล์ที่คุณดาวน์โหลดมา เช่น arduino-1.8.5-linux64.tar.xz

3. เพิ่มไอคอน Arduino IDE ไปยังเมนูของระบบ

แก้ arduino-version ให้ตรงกับเวอร์ชั่นของ Arduino IDE ที่คุณดาวน์โหลดมา เช่น arduino-1.8.5

การเรียกโปรแกรม Arduino IDE ขึ้นมาใช้งาน

คุณสามารถเรียกโปรแกรม Arduino IDE ขึ้นมาด้วย 2 วิธีครับ

วิธีที่1 คลิกไอคอนโปรแกรม Arduino IDE จากเมนูของระบบครับ

วิธีที่2 เรียกผ่าน command-line บนโปรแกรม Terminal ด้วยคำสั่งนี้ครับ

วิธีแก้ไขเมื่อเจอ error: cannot access /dev/ttyUSB0

เมื่อคุณพยายามอัปโหลดโปรแกรมลงบอร์ด คุณบางคนอาจจะเจอปัญหาเกี่ยวกับ USB permission (การอนุญาตให้อ่านเขียน USB) แบบรูปด้านล่าง

ถ้าหากคุณลองพิมพ์คำสั่ง ls -l /dev/ttyUSB* คุณก็จะเห็นว่าสิทธิ์การใช้งาน USB คืออนุญาตให้ผู้ใช้ root และผู้ใช้ที่อยู่ในกลุ่ม dialout เท่านั้นที่สามารถอ่านเขียน USB ได้

crwrw—- 1 root dialout 188, 0 พ.ค. 8 14:33 /dev/ttyUSB0

วิธีแก้ไขก็แค่เพิ่มผู้ใช้ของลงไปในกลุ่ม dialout เท่านั้นเองครับ โดยใช้คำสั่งต่อไปนี้

หลังจากพิมพ์คำสั่งข้างบนแล้วให้ logout และ login ใหม่อีกครั้งครับ

หมายเหตุ: บางบอร์ด path จะไม่ใช่ /dev/ttyUSBx แต่จะเป็น /dev/ttyACMx แทนครับ (x คือตัวเลข)

หมายเหตุ2: บางบอร์ดจำเป็นต้องติดตั้ง Driverก่อน เช่น บอร์ดที่ใช้ชิพ USB to Serial CH340/CH340G

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Ubuntu flavours 18.04 LTS ตัวไหนใช้ CPU และ RAM เท่าไหร่กันบ้างนะ

หลังจากที่ Ubuntu 18.04 LTS (รวมทั้ง Ubuntu flavours ได้แก่ Lubuntu, Ubuntu Budgie, Ubuntu MATE และ Xubuntu) ปล่อยตัว Final Release ออกมาให้ดาวน์โหลดกันเมื่อประมาณ วันที่ 27 เมษายน 2018 หลายๆ ท่านก็คงวางแผนที่จะอัปเกรด Ubuntu ของตัวเองกันพร้อมหน้าแล้วครับ ใครที่สเปคคอมฯ สูงหน่อยอาจจะไม่ต้องคิดอะไรมาก อยากจะลงเวอร์ชั่นไหนก็น่าจะลงได้ แต่หากใครใช้คอมฯ เก่าๆ หรือคอมฯ สเปคต่ำๆ แบบผม อาจจะต้องมาพิจารณาสเปคของเครื่องตัวเองกันสักเล็กน้อย ว่าลง Ubuntu แท้ๆ ไหวมั้ย ถ้าไม่ไหวจะพิจารณาเป็น Ubuntu flavours ไหนดี

ทำไมต้องสนใจว่า Ubuntu flavours ไหนใช้ CPU และ RAM เท่าไหร่ ?

เหมือนกับที่เกริ่นไว้ตอนต้นครับ หากใครใช้คอมฯ สเปคสูงๆ ก็ลืมเรื่องทรัพยากรที่ต้องใช้ไปได้เลย แต่หากใครใช้คอมฯ สเปคต่ำๆ แบบผม เช่น ของผมเป็น Notebook สเปคอยู่ที่ [email protected] + RAM=DDR3L [email protected] ถ้าจะให้ไปลง Ubuntu แท้ๆ เลย คอมฯ ของผมก็คงจะทำงานช้าเอาเรื่องครับ

สำหรับคอมฯ สเปคต่ำการประหยัดทรัพยากรของเครื่องให้สามารถใช้ประโยชน์ได้สูงสุดสำหรับผมถือว่าเป็นสิ่งที่สมควรทำ เช่น

  • ถ้าเราเลือก flavour ที่ใช้ CPU น้อยๆ แปลว่า คอมฯ เราจะสามารถใช้โปรแกรมที่ต้องประมวลผลเยอะๆ ได้พร้อมกันหลายโปรแกรมมากขึ้น โดยที่โปรแกรมนั้นไม่ได้ทำงานช้าลง หรือโอกาศที่จะทำงานช้าลงมีน้อยขึ้น
  • ถ้าเราเลือก flavour ที่ใช้ RAM น้อยๆ แปลว่า คอมฯ เราจะสามารถเปิดโปรแกรมหลายๆ โปรแกรมพร้อมกันได้มากขึ้น และลดไปปัญหาคอมฯ ช้าจาก RAM ไม่พอใช้ ทำให้ระบบ Swap Partition แทน ซึ่งจะทำให้คอมฯ ทำงานช้าลงมากๆ หรือบางทีอาจจะทำให้คอมฯ ค้างไปเลยก็มี

เลือก Ubuntu flavours จากแค่ CPU และ RAM เพียงพอจริงหรือ ?

จริงๆ แล้วการเลือก Ubuntu flavours จากการใช้ทรัพยากร CPU และ RAM ที่มากหรือน้อยนั้น ยังไม่เพียงพอต่อการใช้ตัดสินใจหรอกครับ บางคนสเปคเครื่องเหลือๆ อาจจะเลือกจากรูปแบบการใช้งานที่น่าใช้, ความสวยงาม หรือ คุณสมบัติเฉพาะที่ตอบโจทย์ของคนๆ นั้นครับ

การพิจารณาการใช้ทรัพยากร CPU และ RAM เป็นเพียงข้อมูลส่วนหนึ่งที่ช่วยในการสนับสนุนการตัดสินใจเท่านั้นครับ

ข้อมูล CPU และ RAM ที่ถูกใช้ไปโดยระบบในแต่ละ Ubuntu flavours

ผลลัพธ์ต่อไปนี้ผมทดสอบบน VirtualBox ที่ผมจัดสเปคให้กับ Virtual Machine ดังนี้ครับ

CPU=1 Processor ([email protected])

RAM=2GB

Type=Linux

Version=Ubuntu (64-bit)

ผลการใช้ทรัพยากร CPU และ RAM ด้านล่างนี้ เปิดดูจาก System Monitor หรือ Task Manager ในขณะที่ไม่ได้เปิดโปรแกรมอื่นๆ ขึ้นมาใช้งานเลยครับ (ทดลองใช้งานในโหมด Live DVD บน VirtualBox)

Name (CPU% / RAM)

Ubuntu (19% / 1.2 GB)

Ubuntu Budgie (17% / 888MB)

Ubuntu Mate ( 3% / 848MB)

Kubuntu ( 4% / 374MB)

Xubuntu (3% / 365MB)

Lubuntu (1% / 216MB)

สรุป

  • หากเรียงข้อมูลการใช้ทรัพยากรที่สิ้นเปลืองจากมากไปหาน้อยจะได้ข้อมูลตามนี้ครับ Ubuntu > Ubuntu Budgie > Ubuntu Mate > Kubuntu > Xubuntu > Lubuntu
    • คอมฯ สเปคสูง จะใช้ตัวไหนก็แล้วแต่ชอบเลยครับ
    • คอมฯ สเปคกลาง ควรจะพิจารณาตั้งแต่ Kubuntu, Xubuntu หรือ Lubuntu ครับ
    • คอมฯ สเปคต่ำ เหลือตัวเลือกเดียว คือ Lubuntu ครับ
  • หาก CPU ถูกใช้โดยระบบไปเยอะ โปรแกรมที่ต้องใช้ CPU ในการประมวลผลเยอะๆ ความเร็วของโปรแกรมนั้นก็จะลดลงไป ซึ่งโดยปกติผมว่าข้อนี้ไม่ค่อยเป็นปัญหาสำหรับการใช้งานทั่วไปครับ
  • หาก RAM ถูกใช้โดยระบบไปเยอะ เราก็จะเหลือ RAM ให้โปรแกรมอื่นๆ ใช้งานน้อยลง ระบบก็จะไปหยิบ Swap Partition มาใช้งานแทน (จับ Hard Disk มาทำ RAM ทดแทน ซึ่งทำให้คอมฯ ทำงานช้าลงมาก) ซึ่งจากประสบการณ์ผมว่า Web Browser เนี่ยแหละ ที่ใช้ RAM สิ้นเปลืองที่สุดครับ หากเป็นไปได้ใครที่ RAM ไม่ถึง 8GB ให้อัปเกรดเถอะครับ
  • หากเครื่องคุณมีการ์ดจอแยก การ์ดจอแยกอาจช่วยลดภาระที่ CPU ต้องประมวลผลในส่วนของกราฟิกลงไปได้ครับ
  • สุดท้าย การที่จะเลือกใช้ Ubuntu flavours ไหน วิธีการที่ดีที่สุด คือ ทดลองใช้งานด้วยตัวคุณเองครับ ว่ามันตอบโจทย์คุณหรือไม่ครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

สอนติดตั้ง Raspbian OS ลงบน micro SD card ด้วยโปรแกรม Etcher

สวัสดีครับ วันนี้ผมจะมาสอนติดตั้งระบบปฏิบัติการ Raspbian ลงบน micro SD card เพื่อนำไปใช้กับบอร์ด Raspberry Pi กันครับ ซึ่งในบทความนี้จะไม่รวมการตั้งค่า raspi-config เมื่อเปิดเครื่องครั้งแรกนะครับ, ก่อนเราจะเริ่มลงมือทำ เรามาเตรียมเครื่องไม้เครื่องมือที่ต้องใช้กันก่อนครับ
Raspberry Pi 2 Bundle

สิ่งที่ต้องเตรียม

  1. micro SD card สำหรับติดตั้งระบบปฏิบัติการ Raspbian ลงไป
    • แนะนำให้ใช้เป็นยี่ห้อ SanDisk ครับ (เป็นความชอบส่วนบุคคล)
    • Class ให้เลือกเป็น Class 10 จะได้ไม่มาหงุดหงิดเรื่องความเร็วทีหลังครับ
    • ความจุจะเอากี่ GB ก็แล้วแต่การนำไปใช้งานครับ ถ้ายังไม่แน่ใจว่าจะเอาไปใช้งานอะไรบ้างก็ให้เลือกเป็น 16GB ก็ได้ครับ เพราะว่าตั้งแต่ 8GB ลงมาน่าจะหาซื้อยากแล้ว
    • ยิ่งเราเลือกรุ่นที่ความเร็วในการอ่าน/เขียนเยอะมากเท่าไหร่ ราคาก็จะยิ่งสูงครับ
    • อ้อ! เลือกอันที่มี SD Adapter แถมมาด้วยก็ดีนะ (ตัวแปลง micro SD card เป็น SD card แบบธรรมดา)
    • คลิ๊กที่นี่เพื่อเลือกซื้อ micro SD card ผ่านเว็บไซต์ Advice
  2. External Card Reader (กรณีคอมฯ ไม่มีช่องเสียบ SD card/micro SD card หรือว่ามีแต่ใช่การไม่ได้) – หากลองเช็คคอมฯ ตัวเองดู แล้วพบว่าไม่มีช่องเสียบ SD card หรือ micro SD card หรือว่ามีแต่ใช้การไม่ได้ ให้ซื้อ External Card Reader (ตัวแปลง SD card/micro SD card เป็นพอร์ต USB) เตรียมไว้ด้วยครับ คลิ๊กที่นี่เพื่อเลือกซื้อ External Card Reader ผ่านเว็บไซต์ Advice
  3. ไฟล์ระบบปฏิบัติการ Raspbian (Raspbian Image) – ดาวน์โหลดไฟล์ระบบปฏิบัติการ Raspbian ที่เราจะใช้ติดตั้งลงไปบน micro SD card มาเตรียมไว้ด้วยครับ คลิ๊กที่นี่เพื่อไปหน้าดาวน์โหลด Raspbian เวอร์ชั่นล่าสุด
  4. โปรแกรม Etcher ใช้สำหรับติดตั้ง Raspbian Image ลงบน micro SD card – จริงๆ แล้วโปรแกรมประเภทนี้มีให้ใช้หลายตัวครับ, แต่ว่าโปรแกรม Etcher มันเจ๋งกว่าโปรแกรมตัวอื่นตรงที่มันมีให้ใช้ได้ทั้งบนระบบปฏิบัติการ Windows, macOS และ Linux ครับ แปลว่าไม่ว่าคุณจะเป็นผู้ใช้ระบบปฏิบัติการยอดฮิตตัวไหน คุณก็สามารถทำตามบทความนี้ด้วยวิธีเดียวกันได้ไม่ยากครับ คลิ๊กที่นี่เพื่อไปหน้าดาวน์โหลด Etcher

ขั้นตอนการติดตั้ง Raspbian Image ลงบน micro SD card

หลังจากที่เตรียมเครื่องไม้เครื่องมือกันพร้อมแล้ว เราก็มาเริ่มติดตั้ง Raspbian Image ลงบน micro SD card กันได้เลยครับ

ขั้นแรกให้เปิดโปรแกรม Etcher ขึ้นมาก่อนครับ หน้าตาโปรแกรมตอนเปิดขึ้นมาจะได้แบบนี้ครับ

มาถึงตรงนี้หลายๆ คนคงจะร้องอ๋อแล้วครับ ว่าต้องทำยังไงต่อ เพราะหน้าตาโปรแกรมมันบอกซ๊ะขนาดนั้น การใช้งานหลังจากเปิดโปรแกรมขึ้นมามีแค่ 3 ขั้นตอนเท่านั้นครับ

ขั้นตอนที่ 1

กดปุ่ม Select Image จากนั้นเลือกไฟล์ Raspbian Image ที่เราโหลดมาเป็นไฟล์ .zip ครับ เช่น 2017-09-07-raspbian-stretch.zip (ถ้าเป็นโปรแกรมอื่นๆ ส่วนใหญ่จะต้อง unzip ให้ได้ไฟล์ .img ออกมาก่อนครับ)

ขั้นตอนที่ 2

เสียบ micro SD card เข้ากับคอมฯ เลยครับ อาจจะใช้ SD Adapter หรือ External Card Reader อันนี้ก็แล้วแต่ครับ

พอเสียบ micro SD card เรียบร้อย ตัวโปรแกรมก็จะเลือกไดร์ฟ micro SD card ที่เราเพิ่งเสียบเข้าไปให้โดยอัตโนมัติครับ

*** กรณีเสียบที่ micro SD card, Flash Drive หรือ External HardDisk Drive ตัวอื่นๆ เอาไว้ให้กดปุ่ม Change แล้วเลือกไดร์ฟให้ถูกต้อง ให้เป็น micro SD card ที่เราเพิ่งเสียบเข้าไปครับ ย้ำนะครับ เลือกไดร์ฟให้ถูกต้อง ไม่อย่างนั้นข้อมูลในไดร์ฟอื่นของคุณอาจสูญหายได้ โดยสังเกตได้จากความจุว่ากี่ GB และ Label ที่แสดงครับ หรือถ้าไม่มั่นใจจริงๆ ว่าที่เลือกอยู่ถูกตัวมั้ย ให้ดึงอุปกรณ์ประเภทเก็บข้อมูลตัวอื่นๆ ออกไปก่อนก็ได้ครับ ***

ขั้นตอนที่ 3

กดปุ่ม Flash! เพื่อเริ่มติดตั้ง Raspbian Image ลง micro SD card ได้เลยครับ ระยะเวลาติดตั้งก็ราวๆ 15นาที

เมื่อติดตั้งเสร็จแล้วโปรแกรมจะแจ้งว่า Flash Complete! หลังจากนั้นก็ถอด micro SD card ไปเสียบใช้งานกับ Raspberry Pi ได้เลยครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีติดตั้ง Docker บน Ubuntu

Docker ปัจจุบันมี 2 Edition คือ Docker CE (Community Edition) และ Docker EE (Enterprise Edition) โดยความแตกต่างของทั้ง 2 Edition นี้ คือ

  1. Docker CE = Docker ตัวเดิม เวอร์ชั่นฟรี (แค่เปลี่ยนชื่อ)
  2. Docker EE = Docker ตัวใหม่ เวอร์ชั่นเสียเงิน

โดยในบทความนี้จะสอนติดตั้ง Docker CE หรือ Docker เวอร์ชั่นฟรีบน Ubuntu กันครับ

Ubuntu เวอร์ชั่นที่สามารถติดตั้ง Docker CE ได้

  • Ubuntu 64-bit เวอร์ชั่น 14.04 / 16.04 / 17.10 (edge channel) / 18.04 (edge channel)

ขั้นตอนการติดตั้ง Docker CE

ติดตั้ง package ที่ทำให้ apt สามารถใช้งาน repository ผ่าน HTTPS ได้

เพิ่ม GPG key ของ Docker

เพิ่ม repository ของ Docker (สำหรับคนที่ใช้ Ubuntu 17.10 และ 18.04 ให้แก้ตรง stable เป็น edge ครับ)

ทำให้ apt รู้จัก package จาก repository ที่เราเพิ่งเพิ่มเข้าไปใหม่

ติดตั้ง Docker CE

เสร็จแล้วครับ ตอนนี้คุณก็สามารถเริ่มต้นใช้งาน Docker ได้แล้ว !

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีติดตั้ง OWASP ZAP บน Ubuntu

วิธีติดตั้ง OWASP ZAP

1. ดาวน์โหลด OWASP ZAP เวอร์ชั่น 2.7.0 ที่เป็นไฟล์ archive ไปไว้ที่ไดเรคทอรี่ /tmp

2. extract ไฟล์ archive ไปไว้ที่ไดเรคทอรี่ /opt

3. ถึงตอนนี้ก็ติดตั้งเสร็จแล้วครับ, เริ่มต้นใช้งาน OWASP ZAP ได้เลย 🙂

การตั้งค่า OWASP ZAP เบื้องต้น

วิธีติดตั้ง Root CA certificate บน Web Browser

ปัญหาที่เราจะพบเมื่อเราไม่ติดตั้ง Root CA certificate บน Web Browser เอาไว้ คือ เมื่อเราเข้าเว็บไซต์ที่เป็น HTTPS จะมีข้อความแจ้งเตือนเกี่ยวกับ invalid security certificate แบบในรูปครับ

*** วิธีแก้ไข คือ Export Root CA certificate ออกมาจากโปรแกรม OWASP ZAP แล้วเอาไปติดตั้งลงบน Web Browser ครับ ***

วิธี Export Root CA certificate

  1. เปิดโปรแกรม OWASP ZAP
  2. ไปที่เมนู Tools > Options > Dynamic SSL Certificates
  3. คลิ๊กปุ่ม Save เพื่อ Export ไฟล์ Root CA certificate ออกมา (จำไว้ด้วยครับ ว่าเราตั้งชื่อไฟล์ว่าอะไร แล้วบันทึกไว้ที่ไหน)

วิธีติดตั้ง Root CA certificate บน Firefox

  1. เปิดโปรแกรม Firefox
  2. พิมพ์ about:preferences ที่ address bar แล้วกดปุ่ม Enter
  3. ไปที่ Advanced > Certificates > View Certificates > Authorities
  4. กดปุ่ม Import แล้วเลือกไฟล์ Root CA certificate ที่เราเพิ่ง Export ออกมา
  5. จากนั้นจะมีหน้าต่างใหม่โผล่ขึ้นมา คลิ๊กให้มีเครื่องหมายถูกที่ Trust this CA to identify websites จากนั้นกดปุ่ม OK

วิธีแก้ปัญหา OWASP ZAP มีสถานะเป็น Always on Top เมื่อ Traffic ถูก Intercept

  1. เปิดโปรแกรม OWASP ZAP
  2. ไปที่เมนู Tools > Options > Breakpoints
  3. คลิ๊กเอาเครื่องหมายถูกออกที่ ZAP always on top when breakpoint hit
  4. คลิ๊กปุ่ม OK

วิธีตั้งค่า Firefox ให้ใช้งาน OWASP ZAP เป็น Proxy

  1. เปิดโปรแกรม Firefox
  2. พิมพ์ about:preferences ที่ address bar แล้วกดปุ่ม Enter
  3. ไปที่ Advanced > Network > Connection > Settings
  4. เลือก Manual proxy configuration
  5. กำหนด HTTP Proxy=127.0.0.1, Port=8080
  6. คลิ๊กให้มีเครื่องหมายถูกที่ Use this proxy server for all protocols
  7. ตรง No Proxy for ลบออกให้หมด หากจะใช้ OWASP ZAP เพื่อทดสอบกับ localhost หรือ 127.0.0.1 ด้วย
  8. กดปุ่ม OK

วิธีทำให้ OWASP ZAP ใช้ Tor เป็น Proxy

1. สร้างไฟล์สำหรับเรียกใช้งาน OWASP ZAP ที่ใช้ Tor เป็น Proxy ชื่อว่า zap-tor.sh

2. แก้ไขไฟล์ zap-tor.sh ให้ใช้ Tor เป็น Proxy โดยส่งผ่าน option ไปที่ JVM (ZAP เป็น JAVA application)

3. เรียกใช้งาน OWASP ZAP ที่ใช้ Tor เป็น Proxy

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Raspberry Pi คืออะไร ?

Raspberry Pi คือ บอร์ดคอมพิวเตอร์ขนาดเล็ก ที่ถูกพัฒนาขึ้นโดย Raspberry Pi Foundation มีคุณสมบัติเด่น คือ ติดต่อ และ ความคุมอุปกรณ์อิเล็กทรอนิกส์ได้

Raspberry Pi 3 Model B
Raspberry Pi 3 Model B By Herbfargus (Own work) [CC BY-SA 4.0], via Wikimedia Commons
Raspberry Pi Zero
Raspberry Pi Zero By Evan-AmosOwn work, Public Domain, Link
Raspberry Pi Compute Module
Raspberry Pi Compute Module By Raspberry Pi Foundation (Raspberry Pi Foundation) [CC BY-SA 4.0], via Wikimedia Commons

ลักษณะทั่วไปของ Raspberry Pi

  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการใช้งานทั่วไป เช่น ใช้เพื่อทำงานเอกสาร, ดูหนัง ฟังเพลง, ใช้เพื่อการคำนวณต่างๆ หรือจะทำเป็น Web Server ก็ย่อมได้
  • เป็นคอมพิวเตอร์ที่ มีขนาดเล็ก
  • เป็นคอมพิวเตอร์ที่ มีราคาถูก เพราะผู้พัฒนามีเจตนาสร้างขึ้นมาเพื่อให้เป็นสื่อการเรียนการสอนทางด้านคอมพิวเตอร์ และเพื่อให้กลุ่มประเทศที่กำลังพัฒนาสามารถมีคอมพิวเตอร์ใช้ได้ทั่วถึงขึ้น
    • Raspberry Pi 3 Model B ราคาประมาณ 35 USD (ประมาณ 1,200 บาท)
    • Raspberry Pi Zero ราคาประมาณ 5 USD (ประมาณ 170 บาท)
    • Raspberry Pi Compute Module 3 ราคาประมาณ 30 USD (ประมาณ 1,000 บาท)
    • *** ราคานี้เป็นราคาโดยประมาณที่ยังไม่รวมค่านำเข้าไทย ค่าภาษี และ ราคาที่แต่ละร้านจะบวกเพิ่มเพื่อเป็นกำไร ***
  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการสื่อสาร และควบคุมอุปกรณ์อิเล็กทรอนิกส์ได้ เช่น สามารถรับรู้สถานะของเครื่องใช้ไฟฟ้าได้ว่ากำลังทำงานอยู่หรือไม่ และ ยังสามารถสั่งงานให้เครื่องใช้ไฟฟ้าทำงานหรือหยุดทำงานก็ได้

ใช้ Raspberry Pi ทำอะไรได้บ้าง ?

เนื่องจาก Raspberry Pi เป็นคอมพิวเตอร์ แน่นอนมันย่อมทำทุกอย่างที่คอมพิวเตอร์ทำได้ เช่น

  • ใช้เป็นคอมพิวเตอร์ส่วนบุคคล เพื่อดูหนัง ฟังเพลง เล่นอินเทอร์เน็ต
  • ใช้เป็นเว็บเซิร์ฟเวอร์ สำหรับเปิดเว็บไซต์ขนาดเล็ก
  • ใช้ทำระบบตรวจจับใบหน้า

ส่วนนอกเหนือจากที่คอมพิวเตอร์ทั่วๆ ไปทำได้ก็คงเป็นเรื่องของการสื่อสาร และควบคุมอุปกรณ์ไฟฟ้า อิเล็กทรอนิกส์ต่างๆ เช่น

  • ระบบเปิด/ปิดหลอดไฟ หรือเครื่องใช้ไฟฟ้าแบบอัตโนมัติ
  • ใช้ควบคุมการทำงานของหุ่นยนต์ หรือเครื่องจักร
  • ใช้ทำประตูไฟฟ้า ล็อค/ปลดล็อคด้วยรีโมท หรือสั่งงานด้วยเสียง
  • ใช้ทำสถานีวัดอุณหภูมิ และความชื้นในอากาศ
  • ใช้ทำระบบกล้องวงจรปิด

ซึ่งผมคงบรรยายได้ไม่หมดว่ามันทำอะไรได้บ้าง เอาเป็นว่าไปลองดูเว็บนี้ก็แล้วกัน ว่าเค้าใช้ Raspberry Pi ทำอะไรกันไปแล้วบ้าง 1132 Projects tagged with “raspberry pi” – Hackaday.io

Raspberry Pi ต้องมีระบบปฏิบัติการ

ก่อนที่จะใช้ Raspberry Pi ได้นั้น จำเป็นต้องติดตั้งระบบปฏิบัติการให้กับ Raspberry Pi ก่อน โดยระบบปฏิบัติการที่นิยมใช้กัน คือ ระบบปฏิบัติการ Raspbian เพราะเป็นระบบปฏิบัติการที่ถูกสนับสนุนโดยตรงจากทาง Raspberry Pi Foundation นั่นเอง

*** Raspbian เป็นระบบปฏิบัติการตระกูลลินุกซ์ครับ ใครที่ไม่เคยใช้ลินุกซ์ก็อาจจะรู้สึกว่ามันยากสักหน่อยนะครับ ***

แต่นอกเหนือจากระบบปฏิบัติการ Raspbian แล้ว ก็ยังมีระบบปฏิบัติการอื่นๆ ให้เลือกใช้กันมากมาย ไปเลือกดูกันเองที่ https://www.raspberrypi.org/downloads/

การควบคุมอุปกรณ์อิเล็กทรอนิกส์

บนบอร์ด Raspberry Pi จะมีสิ่งที่เรียกว่า GPIO (General Purpose Input-Output) ซึ่งมันคือส่วนที่เอาไว้ต่อสัญญาณ Input/Output เข้ากับวงจรอิเล็กทรอนิกส์ภายนอกได้

Raspberry Pi 1 Model B+ GPIO Pins

การรับ/ส่งสัญญาณ Input/Output ผ่าน GPIO จำเป็นต้องเขียนโปรแกรมสั่งงาน โดยภาษาที่นิยมใช้กันทั่วไป ได้แก่ ภาษา Python แต่นอกจากภาษา Python แล้ว ก็ยังมีภาษาอื่นๆ ให้เลือกใช้กันอีก เช่น C/C++, Shell Script และภาษาอื่นๆ

โดยรูปแบบหนึ่งของสัญญาณที่ใช้รับ/ส่งจะอยู่รูปแบบของแรงดันไฟฟ้า 0V กับ 3.3V เช่น

  • เมื่อ GPIO ขา X ได้รับไฟ 0V (หรือไม่ถูกจ่ายไฟ) >> โปรแกรมจะได้รับสัญญาณเป็น 0 หรือ False
  • เมื่อ GPIO ขา X ได้รับไฟ 3.3V >> โปรแกรมจะได้รับสัญญาณเป็น 1 หรือ True
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 0 หรือ False >> GPIO ขา X จะจ่ายไฟ 0V (หรือไม่จ่ายไฟ)
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 1 หรือ True >> GPIO ขา X จะจ่ายไฟ 3.3V

ตัวอย่างโค้ดโปรแกรมภาษา Python

ตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Output และส่งสัญญาณออกไปเป็น True หรือก็คือจ่ายไฟออกไป 3.3V แต่ถ้าเปลี่ยนจาก True เป็น False ก็จะจ่ายไฟออกไป 0V (หรือไม่จ่ายไฟ)

ส่วนตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Input และเมื่อได้รับไฟ 3.3V ตัวแปร input จะมีค่าเท่ากับ True และแน่นอนเมื่อได้รับไฟ 0V (ไม่ถูกจ่ายไฟ) ตัวแปร input ก็จะมีค่าเท่ากับ False นั่นเอง

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี ADD / COPY Hidden File ขณะ Build Docker Image

ปัญหา

เมื่อเราใช้คำสั่ง ADD หรือ COPY ใน Dockerfile เพื่อคัดลอก Hidden File (ไฟล์ในระบบ Linux ที่ชื่อขึ้นต้นด้วยจุด .) ไปยัง Docker Image ในขณะที่เรา Build Image

ถ้าเราใช้รูปแบบคำสั่งเป็น

หรือ

เราอาจจะพบข้อผิดพลาดดังนี้

วิธีแก้ไข

เพื่อหลีกเลี่ยงข้อผิดพลาดดังกล่าว แนะนำให้ใช้คำสั่ง ADD และ COPY ในอีกรูปแบบหนึ่ง ดังนี้

หรือ

ซึ่งโดยส่วนตัวแล้ว ผมคิดว่ารูปแบบนี้น่าใช้กว่ารูปแบบแรก เพราะนอกจากจะใช้คัดลอก Hidden File ได้แล้ว ก็ยังสามารถใช้รูปแบบนี้คัดลอกไฟล์ที่มี Whitespace (เว้นวรรค) ได้ด้วย

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี build hping3 บน Ubuntu

โดยปกติบน Ubuntu คุณสามารถติดตั้ง hping3 ผ่าน repository ได้โดยใช้คำสั่ง apt หรือ apt-get อยู่แล้ว

แต่ถ้าคุณจะ build hping3 เอง อาจจะด้วยเหตุผลอะไรก็แล้วแต่ ให้คุณทำตามขั้นตอนด้านล่างนี้

1. ถ้าคุณยังไม่ได้ติดตั้งชุดเครื่องมือสำหรับ build ให้ติดตั้งก่อน โดยใช้คำสั่งนี้

2. ติดตั้ง pcap development package

3. ติดตั้ง TCL development package

4. ดาวน์โหลด source ไฟล์ hping3 จากเว็บไซต์ต้นฉบับ

5. extract hping3 archive ที่เพิ่งดาวน์โหลดมา

6. ย้ายไปทำงานที่ไดเรกทอรี่ hping3 ที่เพิ่ง extract ออกมา

7. ถ้าคุณใช้ Ubuntu เวอร์ชั่น 64บิท คุณต้อง Patch ไฟล์ bytesex.h ก่อน

8. รันสคริป configure เพื่อสร้าง Makefile ใหม่

9. build, strip และ ติดตั้ง hping3

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีอัปเกรด PHPMailer สำหรับ WordPress

เงื่อนไขการอัปเกรด

การอัปเกรดด้วยวิธีต่อไปนี้ เป็นวิธีการอัปเกรดด้วย command line บน linux server

วิธีอัปเกรด

ย้ายไปทำงานที่ไดเรกทอรี่ของเว็บไซต์ WordPress ที่ต้องการอัปเกรด

ค้นหาไฟล์ที่มีคำว่า “phpmailer.php” อยู่ในชื่อไฟล์

ตรวจสอบเวอร์ชั่น PHPMailer ของไฟล์ที่พบ

สำรองไฟล์เอาไว้เผื่ออยากดาวน์เกรดกลับมาเป็นเวอร์ชั่นเดิมทีหลัง

ดาวน์โหลด PHPMailer และไฟล์ที่เกี่ยวข้อง เวอร์ชั่นล่าสุดมาพักไว้ที่ไดเรกทอรี่ /tmp

เริ่มการอัปเกรดโดยการเขียนทับไฟล์เวอร์ชั่นเก่า ด้วยไฟล์ที่เราดาวน์โหลดมาพักไว้ในไดเรกทอรี่ /tmp

ตั้งค่าสิทธิ์ของไฟล์ที่เราเพิ่งอัปเกรด เพื่อให้โปรแกรม Web Server เข้าถึงไฟล์ได้อย่างถูกต้อง

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน