เครื่องคิดเลข Chmod
| ชั้น | อ่าน (r) | เขียน (w) | ทำงาน (x) |
|---|---|---|---|
| เจ้าของ | |||
| กลุ่ม | |||
| อื่น ๆ |
สิทธิ์ของไฟล์ Unix แบ่งเป็นสามชุด ได้แก่ อ่าน เขียน และดำเนินการ สำหรับเจ้าของ กลุ่ม และผู้อื่น ซึ่งสรุปรวมได้อย่างเรียบร้อยเป็นเลขฐานแปดสามหลัก เช่น chmod 755 script.sh คือ rwxr-xr-x หมายความว่าเจ้าของมีสิทธิ์ทั้งหมด ส่วนกลุ่มและผู้อื่นมีสิทธิ์อ่านและดำเนินการ เครื่องมือนี้ให้คุณสลับแต่ละช่องทำเครื่องหมายและดูค่าฐานแปดเปลี่ยนแบบเรียลไทม์ หรือวางเลขฐานแปดเพื่อดูการแยกเป็น rwx พร้อมคำสั่ง chmod ที่พร้อมคัดลอก
การอนุญาต chmod ทำงานอย่างไร
-
1
สลับบิตการอนุญาต 9 บิต
สามกลุ่ม (ผู้ใช้ กลุ่ม อื่นๆ) × สามสิทธิ์ (อ่าน เขียน ดำเนินการ) = 9 ช่องทำเครื่องหมาย
-
2
แต่ละกลุ่มจะกลายเป็นเลขฐานแปดหนึ่งหลัก
อ่าน = 4 เขียน = 2 ดำเนินการ = 1 รวมบิตที่คุณต้องการเปิดใช้งาน
-
3
อ่านผลลัพธ์ในรูปแบบเลขฐานแปดและสัญลักษณ์
เช่น 755 → rwxr-xr-x; 644 → rw-r--r--; 600 → rw-------.
-
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
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องสร้างตัวอักษรสุ่ม
สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน
เครื่องมือเลือกสี HEX
เลือกหรือป้อนสี HEX แล้วดูค่า RGB, HSL, CMYK โดยประมาณ ค่าความสว่างสัมพัทธ์ และคอนทราสต์กับสีขาวและสีดำ
เครื่องกำเนิดจานสี
สร้างพาเลตสีแบบเอกรงค์ ใกล้เคียง คู่ตรงข้าม ไตรแอดิก หรือเตตราดิกจากสี HEX หลัก พร้อมส่งออกตัวแปร CSS ที่คัดลอกได้ทันที
เลขฐานสองเป็นฐานสิบ
แปลงเลขฐานสองเป็นฐานสิบ หรือเลขฐานสิบเป็นฐานสองได้ทันที วางตัวเลขหนึ่งตัวแล้วอ่านผลลัพธ์