อธิบายคำสั่ง 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 อื่นๆ กำหนดให้ไม่มีสิทธิ์ใดๆ

หรือ

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

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

วิธี 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

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

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

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

ถ้าคุณต้องการจะติดตั้ง mdk3 บน Ubuntu คุณจะต้อง build เอง โดยใช้วิธีดังต่อไปนี้

หมายเหตุ : วิธีนี้ทดสอบแล้ว โดยการ build ด้วย GCC 4.8 และติดตั้งบน Ubuntu 14.04

ขั้นตอนการ build mdk3

1. ดาวน์โหลดไฟล์ source ของ mdk3 จากเว็บไซต์ต้นฉบับ

2. extract ไฟล์ archive ที่เพิ่งดาวน์โหลดมา

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

4. แก้ไขไฟล์ชื่อ “Makefile” ในบรรทัดที่ 2 จาก “LINKFLAGS   = –lpthread” ไปเป็น “LINKFLAGS   = –pthread” (ลบตัวเอ็ล “l” ออก) โดยจะใช้ editor ตัวไหนก็ได้แล้วแต่สะดวก เช่น vim, nano หรือ gedit

5.ใช้คำสั่ง make เพื่อเริ่มกระบวนการ build

6.ติดตั้ง mdk3 ลงบนระบบของคุณ (ขั้นตอนนี้ต้องใช้สิทธิ์ root)

เคล็ดลับ

คุณสามารถรวมขั้นตอนที่ 4 และ 5 เข้าด้วยกันโดยใช้คำสั่งต่อไปนี้

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

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

Linux คืออะไร ?

Linux (อ่านว่า ลินุกซ์) มีความหมายที่ถูกเข้าใจกันโดยทั่วไปได้ 2 ความหมาย คือ

  1. ลินุกซ์ หมายถึง ระบบปฏิบัติการลินุกซ์ (Linux Operating System)
  2. ลินุกซ์ หมายถึง ลินุกซ์ เคอร์เนิล (Linux Kernel)

Tux.svg

เริ่มแรกลินุกซ์ถูกสร้างขึ้นโดย Linus Torvalds โดยใช้ระบบปฏิบัติการ MINIX ซึ่งเป็นระบบปฏิบัติการแบบยูนิกซ์เป็นต้นแบบ โดย Linus Torvalds ไม่ได้พัฒนาลินุกซ์ให้เป็นระบบปฏิบัติการ แต่พัฒนาให้ลินุกซ์เป็นเพียงเคอร์เนิล (Kernel) หรือแก่นของระบบปฏิบัติการ ซึ่งจะเป็นส่วนที่อยู่ระดับล่างสุด และใกล้ชิดกับฮาร์ดแวร์มากที่สุด มีหน้าที่หลักในการติดต่อกับฮาร์ดแวร์ (Hardware) และจัดสรรทรัพยากรของระบบ (Resources Management) เท่านั้น ซึ่งยังไม่เพียงพอต่อการถูกนำไปใช้งานโดยผู้ใช้ทั่วไป

Kernel_Layout.svg

By Bobbo (Own work) [CC BY-SA 3.0 or GFDL], via Wikimedia Commons

ในช่วงเวลาใกล้ๆ กัน Richard Stallman ก็ได้พยายามสร้างระบบปฏิบัติการที่เข้ากันได้กับระบบปฏิบัติการยูนิกซ์ ซึ่งระบบปฏิบัติการนี้ประกอบไปด้วยไลบรารี่, คอมไพเลอร์, โปรแกรมแก้ไขข้อความ, เชลล์ และ Windowing System จะเหลือก็แต่ส่วนที่เป็นเคอร์เนิลซึ่งยังพัฒนาออกมาได้ไม่สมบูรณ์ Richard Stallman จึงได้เอาลินุกซ์ เคอร์เนิลที่พัฒนาโดย Linus Torvalds มาใช้แทน จนทำให้ลินุกซ์ถูกเรียกได้ว่าเป็นระบบปฏิบัติการในที่สุด

Linux Distribution คืออะไร ?

Linux Distribution (อ่านว่า ลินุกซ์ดิสทริบิวชัน) หรือเรียกย่อๆ ว่า Linux Distro (อ่านว่า ลินุกซ์ดิสโทร) คือ ระบบปฏิบัติการลินุกซ์ที่ถูกออกแบบและปรับแต่งเพื่อการแจกจ่าย โดยการนำเอาระบบปฏิบัติการลินุกซ์มาปรับแต่งและเพิ่มซอฟต์แวร์พื้นฐานต่างๆ รวมเข้าไป เช่น เพิ่มส่วนติดต่อผู้ใช้, โปรแกรมจัดการไฟล์, โปรแกรมสำหรับดูหนัง-ฟังเพลง, โปรแกรมเว็บเบราว์เซอร์ เป็นต้น สรุปง่ายๆ ก็คือ ลินุกซ์ดิสโทรเป็นระบบปฏิบัติการลินุกซ์แบบสำเร็จรูป พร้อมใช้งาน เมื่อติดตั้งแล้วแทบจะไม่ต้องปรับแต่งหรือติดตั้งซอฟต์แวร์เพิ่มเลย ใช้งานได้ทันที เช่น Arch Linux, Debian, Ubuntu, Linux Mint, openSUSE, Red Hat และ Fedora เป็นต้น

ระบบปฏิบัติการ Ubuntu 18.04 LTS
ระบบปฏิบัติการ Ubuntu 18.04 LTS

ข้อดีของระบบปฏิบัติการลินุกซ์

  1. เป็นซอฟต์แวร์โอเพนซอร์ส ทำให้เราสามารถปรับแต่งระบบได้อย่างอิสระ
  2. ระบบปฏิบัติการลินุกซ์ส่วนใหญ่ อนุญาตให้คุณใช้งานได้ฟรี ไม่ต้องเสียค่าใช้จ่าย ทำให้ผู้ผลิตฮาร์ดแวร์ที่จำเป็นต้องมีระบบปฏิบัติการส่วนใหญ่นำลินุกซ์ไปใช้ในระบบ เพราะไม่ต้องจ่ายค่าลิขสิทธิ์เพิ่มเติม เช่น เราเตอร์, โทรศัพท์มือถือ, ระบบเครื่องเสียงในรถยนต์ หรือ อุปกรณ์อื่นๆ ที่ใช้ระบบปฏิบัติการ Android เป็นต้น
  3. ไม่ต้องกังวลเรื่องลิขสิทธิ์ เพราะเขาอนุญาตให้คุณใช้งานฟรีภายใต้เงื่อนไขที่ระบุไว้ในสัญญาอนุญาต
  4. ไวรัสคอมพิวเตอร์ส่วนใหญ่ ไม่สามารถทำงานบนระบบปฏิบัติการลินุกซ์ได้ เพราะมาตรการการรักษาความปลอดภัยของลินุกซ์เอง (เช่น ระบบสิทธิ์การใช้งานไฟล์) และเพราะลินุกซ์ยังมีปริมาณผู้ใช้งานที่น้อยมากเมื่อเทียบกับผู้ใช้งานระบบปฏิบัติการวินโดวส์ จนผู้พัฒนาไวรัสคิดว่ายังไม่คุ้มค่าที่จะมาสร้างไวรัสขึ้นมาเพื่อโจมตีผู้ใช้งานลินุกซ์ (คล้ายๆ กับความคิดที่ว่า จะตกปลาก็ตกในบ่อที่มีปลาเยอะๆ หน่อยย่อมให้ผลที่ดีกว่า ใช้เวลาตกปลาเท่ากันแต่จำนวนที่ตกได้ย่อมต่างกัน)
  5. ซอฟต์แวร์บนระบบปฏิบัติการลินุกซ์ส่วนมากได้รับการอัปเดตอยู่ตลอดเวลา ทำให้มั่นใจได้ในเสถียรภาพ ความสามารถ และความปลอดภัย

ข้อเสียของระบบปฏิบัติการลินุกซ์

  • ผู้ผลิตฮาร์ดแวร์ เช่น การ์ดจอ, printer, USB WiFi ไม่ค่อยให้ความสนใจกับไดรเวอร์อุปกรณ์ (device driver) บนลินุกซ์ ทำให้ฮาร์ดแวร์บางตัวไม่สามารถใช้งานได้กับลินุกซ์ หรือถ้าใช้งานได้ก็ไม่เต็มประสิทธิภาพเท่าที่ควร ดังนั้นหากคิดจะใช้ลินุกซ์ควรตรวจสอบให้แน่ใจก่อนว่าฮาร์ดแวร์นั้นๆ สามารถใช้ได้กับลินุกซ์หรือไม่ ถึงแม้ว่าปัจจุบันปัญหาเรื่องไดรเวอร์บนลินุกซ์จะลดลงแล้วก็ตาม
  • ไม่สามารถติดตั้งและใช้งานซอฟต์แวร์หลายๆ ตัวที่ถูกสร้างขึ้นมาสำหรับระบบปฏิบัติการวินโดวส์โดยเฉพาะได้ ดังนั้นหากจะเปลี่ยนมาใช้ลินุกซ์ควรตรวจสอบให้แน่ใจก่อนว่าซอฟต์แวร์ที่จำเป็น ต้องใช้นั้น สามารถใช้ได้บนลินุกซ์หรือไม่ หากซอฟต์แวร์ตัวนั้นใช้งานบนลินุกซ์ไม่ได้ ยังพอมีซอฟต์แวร์ตัวอื่นทดแทนได้ไหม
  • เกมบนระบบปฏิบัติการลินุกซ์ค่อนข้างน้อยเมื่อเทียบกับเกมบนระบบปฏิบัติการวินโดวส์ และหลายๆ เกมกราฟิกไม่สวยเอามากๆ ดังนั้นลินุกซ์จึงเป็นตัวเลือกที่ไม่ดีนักสำหรับผู้ที่ชื่นชอบการเล่นเกม เป็นชีวิตจิตใจ

หมายเหตุ : ลินุกซ์สามารถใช้งานซอฟต์แวร์ของระบบปฏิบัติการวินโดวส์ได้โดยเรียกใช้งานผ่านโปรแกรม Wine หรือ ติดตั้งซอฟต์แวร์ลงบนระบบปฏิบัติการวินโดวส์ที่ถูกติดตั้งไว้บน Virtual Machine เช่น VirtualBox หรือ VMware อีกที (ซึ่งต้องใช้ทรัพยากรของระบบมากพอตัว แน่นอน.. คอมพิวเตอร์เก่าๆ คงหมดสิทธิ์ !)

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

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