อธิบายคำสั่ง 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 ตัว เช่น

chmod <octal_digits> file_or_directory_name

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

chmod u=rwx,g=rwx,o=rwx file_or_directory_name

ตัวอย่าง

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

chmod 777 file_or_directory_name

หรือ

chmod ugo=rwx file_or_directory_name

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

chmod 770 file_or_directory_name

หรือ

chmod ug=rwx,o= file_or_directory_name

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

chmod 750 file_or_directory_name

หรือ

chmod u=rwx,g=rx,o= file_or_directory_name

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

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

วิธีตั้งค่า Arduino IDE ให้รองรับ ESP8266 และ NodeMCU

เมื่อเราติดตั้ง Arduino IDE เสร็จใหม่ๆ ตัวโปรแกรมจะยังไม่รองรับ ESP8266 และ NodeMCU

เราจำเป็นต้องติดตั้งแพคเกจ esp8266 ผ่าน Boards Manager เสียก่อน โดยมีขั้นตอนการติดตั้งง่ายๆ เพียงไม่กี่ขั้นตอนเท่านั้นครับ

หมายเหตุ: การติดตั้งแพคเกจ esp8266 จะทำให้ Arduino IDE รู้จักกับ Generic ESP8266 และบอร์ดอื่นๆ ที่พัฒนามาจาก ESP8266 ด้วย เช่น NodeMCU, ESPresso Lite, SparkFun ESP8266 Thing, WeMos D1, ESPino และอื่นๆ

ขั้นตอนการติดตั้งแพคเกจ esp8266 ให้ Arduino IDE

1. ที่โปรแกรม Arduino IDE ไปที่เมนู File > Preferences

2. ที่หน้าต่าง Preferences คลิ๊กที่ไอคอนด้านขวามือของ Additional Boards Manager URLs:

3. ที่หน้าต่าง Additional Boards Manager URLs เพิ่ม URL ด้านล่างนี้ลงไป (ถ้ามี URL อื่นอยู่แล้ว ให้เพิ่ม URL ไปที่บรรทัดใหม่ครับ) จากนั้นกดปุ่ม OK

http://arduino.esp8266.com/stable/package_esp8266com_index.json

4. ที่หน้าต่าง Preferences กดปุ่ม OK อีกครั้งเพื่อบันทึกการตั้งค่า

5. ที่โปรแกรม Arduino IDE ไปที่เมนู Tools > Board > Boards Manager…

6. ที่หน้าต่าง Boards Manager ตรงช่องค้นหาให้พิมพ์คำค้นหาว่า esp8266 และเมื่อเจอผลลัพธ์ให้คลิ๊กเลือกที่ esp8266 by ESP8266 Community จากนั้นคลิ๊กปุ่ม Install และรอจนมีข้อความขึ้นว่า INSTALLED จากให้กดปุ่ม Close เป็นอันเสร็จสิ้นขั้นตอนการติดตั้งครับ

เมื่อคุณติดตั้งเสร็จแล้ว คุณสามารถตรวจเช็คดูว่า Arduino IDE ของคุณรองรับ ESP8266 แล้วหรือยัง โดยคลิ๊กที่เมนู Tools > Board และลองเลื่อนดูว่ามี Generic ESP8266 และบอร์ดอื่นๆ ที่พัฒนามาจาก ESP8266 ปรากฏขึ้นมาแล้วหรือยังครับ

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

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

วิธีดาวน์โหลดและติดตั้ง 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

mkdir ~/bin

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

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

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

tar -xJf ~/your-download-path/arduino-version-linux.tar.xz -C ~/bin

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

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

~/bin/arduino-version/install.sh

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

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

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

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

~/bin/arduino-version/arduino

วิธีแก้ไขเมื่อเจอ 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 เท่านั้นเองครับ โดยใช้คำสั่งต่อไปนี้

sudo usermod -aG dialout $USER

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

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

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

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

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

วิธีติดตั้ง Driver CH340 CH340G บน Windows

สำหรับใครที่ต้องการจะอัปโหลดโปรแกรมลงบอร์ด Arduino, NodeMCU, หรือบอร์ดอื่นๆ ที่ใช้ชิป USB to Serial CH340 หรือ CH340G (มักจะเจอในบอร์ดจากประเทศจีน) บนระบบปฏิบัติการ Windows คุณจำเป็นต้องติดตั้ง Driver สำหรับชิปตัวนี้ก่อนนะครับ ไม่อย่างนั้น Windows จะไม่สามารถติดต่อกับบอร์ดตัวนั้นๆ ได้ครับ (สำหรับ Linux จะมี Driver มาให้ในตัวแล้วครับ)

ซึ่งหากใครจะใช้โปรแกรม Arduino IDE เพื่ออัปโหลดโปรแกรม โดยที่ยังไม่ได้ติดตั้ง Driver ตัวโปรแกรมก็จะมองไม่เห็นบอร์ดที่ใช้ชิป CH340 หรือ CH340G ครับ

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

ขั้นตอนการติดตั้ง Driver สำหรับ CH340/CH340G

1. ดาวน์โหลดไฟล์ติดตั้ง Driver ชื่อว่า CH341SER.EXE จาก www.wch.cn (ต้นฉบับ) หรือ poundxi.com (สำรอง) ก็ได้

2. ดับเบิ้ลคลิกที่ไฟล์ชื่อ CH341SER.EXE ที่เราเพิ่งดาวน์โหลดมาครับ แล้วจะมีหน้าต่างขึ้นมาวิ่งๆ อยู่ครู่หนึ่งแบบในรูป

3. เมื่อปรากฏหน้าต่างแบบในรูป ให้คลิกปุ่ม INSTALL

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

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

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

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 มาใช้งานแทน (Swap คือการจับ Hard Disk มาทำ RAM ทดแทน ซึ่งทำให้คอมฯ ทำงานช้าลงมากๆ เว้นแต่คุณจะใช้ SSD ซึ่งอาจทำให้ช้าลงแต่ไม่มากเท่า Hard Disk) ซึ่งจากประสบการณ์ผมว่า Web Browser เนี่ยแหละ ที่ใช้ RAM สิ้นเปลืองที่สุดครับ หากเป็นไปได้ใครที่ RAM ไม่ถึง 8GB ให้อัปเกรดเถอะครับ
  • หากเครื่องคุณมีการ์ดจอแยก การ์ดจอแยกอาจช่วยลดภาระที่ CPU ต้องประมวลผลในส่วนของกราฟิกลงไปได้ครับ
  • สุดท้าย การที่จะเลือกใช้ Ubuntu flavours ไหน วิธีการที่ดีที่สุด คือ ทดลองใช้งานด้วยตัวคุณเองครับ ว่ามันตอบโจทย์คุณหรือไม่ครับ

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

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

Duck DNS (Dynamic DNS ฟรี) สมัครง่าย ตั้งค่าง่าย

Duck DNS เป็น Dynamic DNS (DDNS) ฟรีๆ อีกหนึ่งค่ายที่น่าสนใจครับ เนื่องจากผมใช้งานจริงด้วยตัวเองมาแล้ว บอกได้เลยว่าประทับใจ และตอบโจทย์ผมได้เป็นอย่างดีครับ ผมจึงอยากจะแบ่งปันสิ่งดีๆ ให้ท่านผู้อ่านได้รู้จักกันครับ

สิ่งที่ทำให้ Duck DNS น่าใช้

  • ใช้งานฟรี
  • บัญชีหนึ่ง สามารถสร้างได้ 5 domain
  • สมัครสมาชิกง่ายมาก แค่ล็อคอินด้วย Twitter, Facebook, reddit หรือ Google Account ก็สามารถใช้งานได้แล้วครับ
  • ตั้งค่าเพื่ออัปเดต IP ง่ายมากๆ เพียงแค่ส่ง HTTP Request ออกไปเพื่อบอก Server ว่าจะอัปเดต IP เท่านั้นเองครับ
  • อุปกรณ์ที่สามารถใช้อัปเดต IP มีหลากหลายครับ ตั้งแต่ใช้คอมพิวเตอร์ทั่วไป, เราท์เตอร์, Arduino, NodeMCU (ESP8266) ก็ยังสามารถทำได้ครับ

การใช้งานเบื้องต้น

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

NodeMCU คืออะไร

NodeMCU (โหนด เอ็มซียู) คือ บอร์ดคล้าย Arduino ที่สามารถเชื่อมต่อกับ WiFi ได้, สามารถเขียนโปรแกรมด้วย Arduino IDE ได้เช่นเดียวกับ Arduino และบอร์ดก็มีราคาถูกมากๆ เหมาะแก่ผู้ที่คิดจะเริ่มต้นศึกษา หรือทดลองใช้งานเกี่ยวกับ Arduino, IoT, อิเล็กทรอนิกส์ หรือแม้แต่การนำไปใช้จริงในโปรเจคต่างๆ ก็ตาม เพราะราคาไม่แพง

ภายในบอร์ดของ NodeMCU ประกอบไปด้วย ESP8266 (ไมโครคอนโทรลเลอร์ที่สามารถเชื่อมต่อ WiFi ได้) พร้อมอุปกรณ์อำนวยความสะดวกต่างๆ เช่น พอร์ต micro USB สำหรับจ่ายไฟ/อัปโหลดโปรแกรม, ชิพสำหรับอัปโหลดโปรแกรมผ่านสาย USB, ชิพแปลงแรงดันไฟฟ้า และขาสำหรับเชื่อมต่ออุปกรณ์ภายนอก เป็นต้น

NodeMCU V3
NodeMCU V3 LoLin

จุดเด่นของ NodeMCU

  1. สามารถเชื่อมต่อกับ WiFi ได้โดยไม่ต้องติดตั้งโมดูล WiFi เพิ่มเติม
  2. ราคาถูกมาก เมื่อเทียบกับบอร์ดที่มี WiFi ในตัวรุ่นอื่นๆ (ราคาในไทยประมาณ 160บาท)
  3. สามารถเขียน และอัปโหลดโปรแกรมลงบอร์ดด้วยโปรแกรม Arduino IDE ผ่านสาย USB แบบเดียวกับที่ใช้ชาร์จโทรศัพท์ได้
  4. สามารถอัปโหลดโปรแกรมผ่าน WiFi ได้ เรียกว่า Over the Air (OTA)
  5. ตัวบอร์ดมีขนาดเล็ก (ประมาณ 5.5 x 3 cm.)

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

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

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

Raspberry Pi 2 Bundle

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

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

  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 เวอร์ชั่น 16.04 / 18.04 / 18.10

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

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

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

เพิ่ม GPG key ของ Docker

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

เพิ่ม repository ของ Docker

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

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

sudo apt-get update

ติดตั้ง Docker CE

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

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

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

เช็คเลขเวอร์ชั่นของ docker-compose ตัวล่าสุดจาก GitHub

DOCKER_COMPOSE_VER=$(curl -s https://github.com/docker/compose/tags | grep "release" | grep -v rc | grep -oP "\d{1,2}\.\d{1,2}\.\d{1,2}" | head -n1)

ดาวน์โหลด docker-compose โดยอิงจากเลขเวอร์ชั่นที่ได้มาจากคำสั่งก่อนหน้า

sudo curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VER/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

ทำให้ไฟล์ docker-compose ที่โหลดมาสามารถ execute ได้

sudo chmod +x /usr/local/bin/docker-compose

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

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

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

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

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

wget -c -P /tmp https://github.com/zaproxy/zaproxy/releases/download/2.7.0/ZAP_2.7.0_Linux.tar.gz

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

sudo tar xvf /tmp/ZAP_2.7.0_Linux.tar.gz -C /opt

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

/opt/ZAP_2.7.0/zap.sh

การตั้งค่า 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

sudo cp /opt/ZAP_2.7.0/zap.sh /opt/ZAP_2.7.0/zap-tor.sh

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

sudo sed 's/exec java ${JMEM}/exec java -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=9050 ${JMEM}/g' -i /opt/ZAP_2.7.0/zap-tor.sh

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

/opt/ZAP_2.7.0/zap-tor.sh

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

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