เครื่องคิดเลข Chmod

ชั้น อ่าน (r) เขียน (w) ทำงาน (x)
เจ้าของ
กลุ่ม
อื่น ๆ
ถัดไป

สิทธิ์ของไฟล์ Unix แบ่งเป็นสามชุด ได้แก่ อ่าน เขียน และดำเนินการ สำหรับเจ้าของ กลุ่ม และผู้อื่น ซึ่งสรุปรวมได้อย่างเรียบร้อยเป็นเลขฐานแปดสามหลัก เช่น chmod 755 script.sh คือ rwxr-xr-x หมายความว่าเจ้าของมีสิทธิ์ทั้งหมด ส่วนกลุ่มและผู้อื่นมีสิทธิ์อ่านและดำเนินการ เครื่องมือนี้ให้คุณสลับแต่ละช่องทำเครื่องหมายและดูค่าฐานแปดเปลี่ยนแบบเรียลไทม์ หรือวางเลขฐานแปดเพื่อดูการแยกเป็น rwx พร้อมคำสั่ง chmod ที่พร้อมคัดลอก

การอนุญาต chmod ทำงานอย่างไร

  1. 1

    สลับบิตการอนุญาต 9 บิต

    สามกลุ่ม (ผู้ใช้ กลุ่ม อื่นๆ) × สามสิทธิ์ (อ่าน เขียน ดำเนินการ) = 9 ช่องทำเครื่องหมาย

  2. 2

    แต่ละกลุ่มจะกลายเป็นเลขฐานแปดหนึ่งหลัก

    อ่าน = 4 เขียน = 2 ดำเนินการ = 1 รวมบิตที่คุณต้องการเปิดใช้งาน

  3. 3

    อ่านผลลัพธ์ในรูปแบบเลขฐานแปดและสัญลักษณ์

    เช่น 755 → rwxr-xr-x; 644 → rw-r--r--; 600 → rw-------.

  4. 4

    คัดลอกคำสั่ง chmod

    เครื่องมือจะแสดงคำสั่ง chmod สำหรับสิทธิ์ปัจจุบันพร้อมคัดลอก ตัวอย่าง: chmod 755 ชื่อไฟล์, chmod u+x ชื่อไฟล์, chmod -R 755 ไดเรกทอรี

ค่าบิตการอนุญาต

บิต ค่า ความหมายของไฟล์ ความหมายของไดเรกทอรี
อ่าน 4 สามารถดูเนื้อหาได้ สามารถแสดงรายการ
เขียน 2 สามารถแก้ไข สามารถสร้าง/ลบ/เปลี่ยนชื่อรายการได้
ดำเนินการ 1 สามารถรันเป็นโปรแกรมได้ สามารถเดินทางข้ามได้ (cd เข้าไป, เข้าถึงภายในได้)

ค่า chmod ทั่วไป

เลขฐานแปด สัญลักษณ์ การใช้งานทั่วไป
777 rwxrwxrwx ทุกคนเขียนได้, อันตราย; ไม่ค่อยถูกต้อง
755 rwxr-xr-x สคริปต์ ไบนารี ไดเร็กทอรี
750 rwxr-x--- สคริปต์ส่วนตัวสำหรับคุณและกลุ่มของคุณ
700 rwx------ สคริปต์ส่วนตัวสำหรับคุณ (SSH, ~/.ssh)
644 rw-r--r-- เอกสารสาธารณะ รูปภาพ HTML
640 rw-r----- การกำหนดค่าที่อ่านได้เป็นกลุ่ม
600 rw------- การกำหนดค่าส่วนตัว, คีย์ส่วนตัว SSH, ~/.netrc
444 r--r--r-- ไฟล์ที่เผยแพร่แบบอ่านอย่างเดียว
400 r-------- ส่วนตัว อ่านอย่างเดียว (ไม่ค่อยถูกต้อง ใช้ 600)

สิทธิ์พิเศษ (หายาก แต่สำคัญ)

  • setuid (4xxx): เรียกใช้ไฟล์ในฐานะเจ้าของ ไม่ว่าใครจะเป็นผู้ดำเนินการก็ตาม /usr/bin/passwd ใช้สิ่งนี้
  • setgid (2xxx): บนไฟล์ ให้รันเป็นกลุ่ม ในไดเร็กทอรี ไฟล์ใหม่จะสืบทอดกลุ่มของไดเร็กทอรี
  • sticky bit (1xxx): ในไดเร็กทอรี มีเพียงเจ้าของไฟล์เท่านั้นที่สามารถลบ/เปลี่ยนชื่อได้ /tmp ใช้สิ่งนี้

เลขฐานแปดสี่หลักได้แก่: chmod 4755 setuid-binary เปิด setuid ควบคู่ไปกับ 755

สัญลักษณ์ chmod

ผู้ดูแลระบบหลายคนชอบรูปแบบสัญลักษณ์สำหรับการเปลี่ยนแปลงเพิ่มเติม:

  • chmod u+x script, เพิ่มการดำเนินการสำหรับเจ้าของเท่านั้น
  • chmod go-w file, ลบการเขียนสำหรับกลุ่มและอื่นๆ
  • chmod a+r file, ให้การอ่านแก่ทุกคน (ผู้ใช้ กลุ่ม อื่นๆ)
  • chmod u=rw,go=r file, ตั้งค่าบิตเหล่านี้ให้แน่ชัด
  • chmod -R 755 directory, เรียกซ้ำ

ข้อผิดพลาดทั่วไป

  • 777 ในโฟลเดอร์อัพโหลด: ดูเหมือนว่าจะ “แก้ไขสิทธิ์”; เปิดเซิร์ฟเวอร์ให้กับผู้โจมตีจริงๆ ใช้ชุดค่าผสมที่แคบกว่า (เช่น 755 ที่มีการเป็นเจ้าของกลุ่มที่ถูกต้อง)
  • chmod -R 644 บนไดเรกทอรี: ลบการดำเนินการบนไดเรกทอรี ดังนั้นคุณจึงไม่สามารถ cd เข้าไปได้ ใช้ 755 สำหรับไดเร็กทอรี, 644 สำหรับไฟล์ปกติ
  • 0600 กับ 600: ศูนย์นำหน้าหมายถึงฐานแปดใน C และเชลล์ การใช้งาน chmod ส่วนใหญ่ยอมรับทั้งสองอย่าง
  • Umask: ไฟล์ใหม่สืบทอด 666 ลบด้วย Umask ค่าเริ่มต้น umask 022 ให้ 644 ไฟล์และ 755 ไดเร็กทอรี

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

โดยทั่วไปคุณต้องการให้เจ้าของสามารถปรับเปลี่ยนได้ และคนอื่นๆ สามารถแสดงรายการและสำรวจได้ 755 = rwx สำหรับเจ้าของ, r-x สำหรับกลุ่มและอื่น ๆ - ชุดค่าผสมนั้นตรงกันทุกประการ

แทบจะไม่เคยเลย 777 ช่วยให้ทุกคนในระบบแก้ไขไฟล์ได้ ในระบบที่มีผู้ใช้หลายราย ถือเป็นช่องโหว่ด้านความปลอดภัย ในระบบผู้ใช้คนเดียวไม่จำเป็น (เจ้าของมี rwx ด้วย 755 อยู่แล้ว) หากเว็บแอปดูเหมือนจะต้องการ 777 การแก้ไขที่แท้จริงคือการเป็นเจ้าของที่ถูกต้อง (chown) หรือการเป็นสมาชิกกลุ่ม

ไดเรกทอรี ~/.ssh: 700 คีย์ส่วนตัว (id_rsa, id_ed25519): 600 คีย์สาธารณะ (.pub): 644 authorized_keys: 600 เพื่อความปลอดภัย SSH จะปฏิเสธคีย์ที่มีสิทธิ์กว้างเกินไป

chown สำหรับเจ้าของ chgrp สำหรับกลุ่ม - คำสั่งแยกกัน chmod เปลี่ยนเฉพาะบิต ไม่ใช่ผู้ใช้/กลุ่มที่เป็นเจ้าของไฟล์

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวตรวจสอบความถูกต้องของ JSON

ตรวจสอบไวยากรณ์ JSON และตรวจจับเครื่องหมายจุลภาคต่อท้าย เครื่องหมายอัญประกาศที่ผิด คีย์ซ้ำ และโครงสร้างที่ผิดรูปแบบ พร้อมระบุตำแหน่งข้อผิดพลาดอย่างแม่นยำ

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

เครื่องมือนี้มีให้บริการในภาษาอื่น