nicetool.dev logo

เครื่องคำนวณ chmod

ติ๊กช่องหรือพิมพ์ค่าฐานแปดหรือสัญลักษณ์ ค่าอื่นจะอัปเดตทันที

ใครอ่านเขียนรันค่า
เจ้าของ (u)7
กลุ่ม (g)5
ผู้อื่น (o)5
$ chmod 755 file.txt
$ chmod u=rwx,g=rx,o=rx file.txt

ls -l: -rwxr-xr-x

สิทธิ์ที่ใช้บ่อย

สิทธิ์ไฟล์ใน Unix ทำงานอย่างไร?

บน Linux, macOS และระบบ Unix อื่น ๆ ทุกไฟล์และไดเรกทอรีมีสิทธิ์สามชุด สำหรับเจ้าของ (user) กลุ่ม (group) และคนอื่นทั้งหมด (others) แต่ละชุดอนุญาตการอ่าน (r) เขียน (w) และรัน (x) ได้ โดยมีค่า 4, 2 และ 1 เมื่อรวมกันจะได้เลขฐานแปดหนึ่งหลักต่อชุด rwxr-xr-x จึงเป็น 7, 5, 5 หรือ chmod 755 สำหรับไดเรกทอรี สิทธิ์อ่านใช้แสดงรายชื่อ เขียนใช้สร้างหรือลบรายการ และรันใช้เข้าไปในไดเรกทอรี หลักที่สี่ด้านหน้าเก็บบิตพิเศษ ได้แก่ setuid (4), setgid (2) และ sticky (1)

ฟีเจอร์

  • • ตารางช่องติ๊กสำหรับเจ้าของ กลุ่ม และผู้อื่น พร้อมค่าฐานแปดแบบเรียลไทม์
  • • แก้ไขได้สองทาง พิมพ์ 755 หรือ rwxr-xr-x แล้วช่องติ๊กจะเปลี่ยนตาม
  • • รองรับ setuid, setgid และ sticky bit แสดงแบบ ls -l (s, S, t, T)
  • • คำสั่งพร้อมคัดลอกทั้งแบบตัวเลขและแบบสัญลักษณ์ (u=rwx,g=rx,o=rx)
  • • ค่าสำเร็จรูปของโหมดที่ใช้บ่อยพร้อมคำอธิบาย

ทำงานแบบออฟไลน์

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

เป็นเครื่องคำนวณล้วน ฝั่งไคลเอนต์ 100%

วิธีใช้ เครื่องคำนวณ chmod

  1. 1

    ติ๊ก อ่าน เขียน และรัน สำหรับเจ้าของ กลุ่ม และผู้อื่น ค่าฐานแปดและสตริง rwx จะอัปเดตทุกครั้งที่คลิก

  2. 2

    หรือพิมพ์โหมดที่รู้อยู่แล้ว เช่น 640 หรือ rwxr-x--- ในช่องฐานแปดหรือสัญลักษณ์ ช่องติ๊กจะเปลี่ยนตาม

  3. 3

    เพิ่มบิตพิเศษหากจำเป็น setuid สำหรับโปรแกรมที่ต้องรันในนามเจ้าของ setgid หรือ sticky สำหรับไดเรกทอรีที่ใช้ร่วมกัน

  4. 4

    ใส่ชื่อไฟล์แล้วคัดลอกคำสั่งสำเร็จรูป จะเป็น chmod 755 file หรือแบบสัญลักษณ์ chmod u=rwx,g=rx,o=rx file ก็ได้

ตัวอย่างการใช้งานจริง

ดีพลอยเว็บไซต์

web root ทั่วไปใช้ 755 กับไดเรกทอรีและ 644 กับไฟล์ เพื่อให้เว็บเซิร์ฟเวอร์อ่านได้ทุกอย่างแต่มีเพียงผู้ใช้ที่ดีพลอยแก้ไขได้: find . -type d -exec chmod 755 {} + และ find . -type f -exec chmod 644 {} +

แก้ข้อผิดพลาด SSH key

SSH ปฏิเสธคีย์ที่สิทธิ์เปิดกว้างเกินไป ("UNPROTECTED PRIVATE KEY FILE") ตั้ง 600 ให้ ~/.ssh/id_ed25519 และ authorized_keys และ 700 ให้ไดเรกทอรี ~/.ssh

ทำให้สคริปต์รันได้

หลังเขียน deploy.sh ให้ใช้ chmod 755 deploy.sh (หรือ chmod u+x deploy.sh ถ้าใช้คนเดียว) แล้วรันด้วย ./deploy.sh

โฟลเดอร์ที่ทีมใช้ร่วมกัน

chmod 2775 /srv/project โดยให้ทีมเป็นกลุ่มเจ้าของ ทุกคนในกลุ่มเขียนได้ และไฟล์ใหม่จะคงกลุ่มของโปรเจกต์ไว้ด้วย setgid

คำถามที่พบบ่อย

chmod 755 หมายความว่าอะไร?+

เจ้าของ: อ่าน เขียน รัน (7) กลุ่ม: อ่าน รัน (5) ผู้อื่น: อ่าน รัน (5) เป็นค่ามาตรฐานสำหรับสคริปต์ โปรแกรม และไดเรกทอรีที่ทุกคนใช้ได้แต่มีเพียงเจ้าของที่แก้ไขได้

chmod 777 เคยเป็นความคิดที่ดีไหม?+

แทบไม่เคย เพราะทำให้ผู้ใช้ทุกคนและโปรเซสที่ถูกเจาะแก้ไขไฟล์ได้ ควรแก้เจ้าของด้วย chown หรือใช้สิทธิ์กลุ่มแทน ไดเรกทอรีที่ใช้ร่วมกันควรใช้ 1777 (sticky) เหมือน /tmp

ทำไมไดเรกทอรีต้องมีสิทธิ์รัน?+

สำหรับไดเรกทอรี x หมายถึง "เข้าไปและเข้าถึงไฟล์ด้านในได้" หากไม่มี จะ cd เข้าไปหรือเปิดไฟล์ไม่ได้ แม้จะอ่านรายชื่อได้ก็ตาม

644 กับ 664 ต่างกันอย่างไร?+

664 ให้กลุ่มเขียนได้ด้วย ใช้ 644 กับไฟล์ที่คุณแก้คนเดียว และ 664 เมื่อทีมที่อยู่กลุ่มเดียวกันต้องแก้ไฟล์เดียวกัน