เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

chmod – เปลี่ยนโหมดไฟล์

ในการเปลี่ยนโหมด (การอนุญาต) ของไฟล์หรือไดเร็กทอรี chmod ใช้คำสั่ง. โปรดทราบว่ามีเพียงเจ้าของไฟล์หรือผู้ใช้ระดับสูงเท่านั้นที่สามารถเปลี่ยนโหมดของไฟล์หรือไดเร็กทอรีได้ chmod สนับสนุนสองวิธีที่แตกต่างกันในการระบุการเปลี่ยนแปลงโหมด: การแสดงเลขฐานแปดหรือการแสดงสัญลักษณ์ เราจะครอบคลุมการแสดงเลขฐานแปดก่อน

ภาพ


Heck คืออะไร Octal?

เลขฐานแปด (ฐาน 8) และลูกพี่ลูกน้องของมัน เลขฐานสิบหก (ฐาน 16) เป็นระบบตัวเลขที่มักใช้แสดงตัวเลขบนคอมพิวเตอร์ มนุษย์เราเนื่องจากการที่เรา (หรืออย่างน้อยที่สุดของเรา) เกิดมาพร้อมกับสิบนิ้ว จึงนับโดยใช้ระบบเลขฐาน 10 ในทางกลับกัน คอมพิวเตอร์ถือกำเนิดขึ้นด้วยนิ้วเดียว ดังนั้นจึงนับทั้งหมดเป็นเลขฐานสอง (ฐาน 2) ระบบตัวเลขของพวกเขามีเพียงสองตัวเลขคือ 0 และ 1 ดังนั้นในเลขฐานสอง การนับจะมีลักษณะดังนี้:

0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011...

ในฐานแปด การนับทำได้ด้วยเลขศูนย์ถึงเจ็ด เช่น 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21...

การนับเลขฐานสิบหกใช้ตัวเลขศูนย์ถึงเก้าบวกตัวอักษร "A" ถึง "F":

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13...

แม้ว่าเราจะมองเห็นความหมายเป็นเลขฐานสอง (เนื่องจากคอมพิวเตอร์มีนิ้วเดียว) เลขฐานแปดและเลขฐานสิบหกมีไว้ทำอะไร คำตอบอยู่ที่ความสะดวกของมนุษย์ หลายครั้ง ข้อมูลส่วนเล็ก ๆ จะแสดงบนคอมพิวเตอร์เป็น รูปแบบบิต. ยกตัวอย่างสี RGB ในหน้าจอคอมพิวเตอร์ส่วนใหญ่ แต่ละพิกเซลประกอบด้วยองค์ประกอบสามสี ได้แก่ สีแดง 24 บิต สีเขียว XNUMX บิต และสีน้ำเงิน XNUMX บิต สีน้ำเงินกลางที่น่ารักจะเป็นตัวเลข XNUMX หลัก:

010000110110111111001101

คุณต้องการอ่านและเขียนตัวเลขเหล่านั้นทั้งวันอย่างไร? ฉันไม่ได้คิดอย่างนั้น นี่คือที่ที่ระบบตัวเลขอื่นจะช่วยได้ ตัวเลขแต่ละตัวในเลขฐานสิบหกหมายถึงเลขฐานสองสี่หลัก ในฐานแปด แต่ละหลักแทนเลขฐานสองสามหลัก ดังนั้นสีน้ำเงินกลาง 24 หลักของเราจึงสามารถย่อเป็นเลขฐานสิบหกหกหลักได้:

436FCD

เนื่องจากตัวเลขในเลขฐานสิบหก "เรียงกัน" กับบิตในเลขฐานสอง เราจะเห็นได้ว่าองค์ประกอบสีแดงของสีของเราคือ 43, 6F สีเขียว และซีดีสีน้ำเงิน

ทุกวันนี้ สัญกรณ์ฐานสิบหก (มักเรียกว่า "ฐานสิบหก") เป็นเรื่องธรรมดามากกว่าเลขฐานแปด แต่อย่างที่เราจะได้เห็นกันในไม่ช้า ความสามารถของเลขฐานแปดในการแสดงเลขฐานสองสามบิตจะมีประโยชน์มาก...


ด้วยสัญกรณ์ฐานแปด เราใช้เลขฐานแปดเพื่อกำหนดรูปแบบของการอนุญาตที่ต้องการ เนื่องจากแต่ละหลักในเลขฐานแปดแสดงถึงเลขฐานสองสามหลัก ค่านี้จึงจับคู่กับ


แบบแผนที่ใช้ในการจัดเก็บโหมดไฟล์ ตารางนี้แสดงสิ่งที่เราหมายถึง:


ตารางที่ 9-4: โหมดไฟล์ในไบนารีและ Octal


Octal

เลขฐานสอง

โหมดไฟล์

0

000

---

1

001

--NS

2

010

-ใน-

3

011

-wx

4

100

NS--

5

101

rx

6

110

ร-

7

111

rwx

โดยใช้เลขฐานแปดสามตัว เราสามารถตั้งค่าโหมดไฟล์สำหรับเจ้าของ เจ้าของกลุ่ม และ

โลก:



[me@linuxbox ~]$ > foo.txt

[me@linuxbox ~]$ ls -l foo.txt

-rw-rw-r-- 1 ฉัน ฉัน 0 2016-03-06 14:52 foo.txt [me@linuxbox ~]$ chmod 600 fo.txt

[me@linuxbox ~]$ ls -l foo.txt

-rw------- 1 ฉัน ฉัน 0 2016-03-06 14:52 foo.txt

[me@linuxbox ~]$ > foo.txt

[me@linuxbox ~]$ ls -l foo.txt

-rw-rw-r-- 1 ฉัน ฉัน 0 2016-03-06 14:52 foo.txt [me@linuxbox ~]$ chmod 600 fo.txt

[me@linuxbox ~]$ ls -l foo.txt

-rw------- 1 ฉัน ฉัน 0 2016-03-06 14:52 foo.txt


ด้วยการส่งอาร์กิวเมนต์ "600" เราสามารถตั้งค่าการอนุญาตของเจ้าของในการอ่านและเขียนในขณะที่ลบการอนุญาตทั้งหมดออกจากเจ้าของกลุ่มและโลก แม้ว่าการแมปฐานแปดใหม่เป็นไบนารีอาจดูไม่สะดวก แต่โดยปกติคุณจะต้องใช้ตัวเลขทั่วไปสองสามอย่างเท่านั้น: 7 (rwx), 6 (ร-), 5 (rx), 4 (NS--) และ 0 (---).

chmod ยังสนับสนุนสัญลักษณ์สำหรับระบุโหมดไฟล์ สัญกรณ์สัญลักษณ์แบ่งออกเป็นสามส่วน: การเปลี่ยนแปลงจะส่งผลต่อใคร การดำเนินการใดที่จะดำเนินการ และการตั้งค่าการอนุญาตใด ในการระบุว่าใครได้รับผลกระทบ ให้ใช้ตัวอักษร “u”, “g”, “o” และ “a” ร่วมกันดังนี้:


ตารางที่ 9-5: chmod Symbolic Notation


สัญลักษณ์ความหมาย

สัญลักษณ์ความหมาย

u ย่อมาจาก “user” แต่หมายถึงเจ้าของไฟล์หรือไดเร็กทอรี


ภาพ

ก. เจ้าของกลุ่ม.


ภาพ


ภาพ

o ย่อมาจาก "other" แต่หมายถึงโลก


ภาพ

สั้นสำหรับ "ทั้งหมด" การรวมกันของ "u", "g" และ "o"


ภาพ


หากไม่มีการระบุอักขระ ระบบจะถือว่า "ทั้งหมด" การดำเนินการอาจเป็นเครื่องหมาย "+" ระบุว่าต้องเพิ่มการอนุญาต "-" ระบุว่าต้องถอดการอนุญาตหรือ "=" ระบุว่าจะใช้เฉพาะการอนุญาตที่ระบุและอื่น ๆ ทั้งหมด จะถูกลบออก

สิทธิ์จะถูกระบุด้วยอักขระ "r", "w" และ "x" ต่อไปนี้คือตัวอย่างบางส่วนของสัญกรณ์สัญลักษณ์:


ตารางที่ 9-6: chmod Symbolic Notation Examples


ความหมายสัญกรณ์

ความหมายสัญกรณ์

u+x เพิ่มการอนุญาตดำเนินการสำหรับเจ้าของ


ภาพ

ux ลบการอนุญาตดำเนินการจากเจ้าของ


ภาพ

+x เพิ่มการอนุญาตดำเนินการสำหรับเจ้าของ กลุ่ม และโลก

เทียบเท่ากับ ก+x.


ภาพ

o-rw ลบสิทธิ์ในการอ่านและเขียนจากใครก็ตามที่ไม่ใช่เจ้าของและเจ้าของกลุ่ม


ภาพ

go=rw ตั้งค่าให้เจ้าของกลุ่มและใครก็ตามที่ไม่ใช่เจ้าของกลุ่มสามารถอ่านและเขียนได้ หากเจ้าของกลุ่มหรือโลกเคยมีสิทธิ์ในการดำเนินการ พวกเขาจะถูกลบออก


ภาพ

u+x,go=rx เพิ่มการอนุญาตดำเนินการสำหรับเจ้าของและตั้งค่าการอนุญาตสำหรับกลุ่มและอื่น ๆ เพื่ออ่านและดำเนินการ ข้อมูลจำเพาะหลายรายการอาจคั่นด้วยเครื่องหมายจุลภาค


ภาพ


บางคนชอบใช้สัญกรณ์ฐานแปด บางคนชอบสัญลักษณ์มาก สัญกรณ์สัญลักษณ์มีข้อดีที่ทำให้คุณสามารถตั้งค่าแอตทริบิวต์เดียวโดยไม่รบกวนแอตทริบิวต์อื่นๆ

ลองดูที่ chmod man page สำหรับรายละเอียดเพิ่มเติมและรายการตัวเลือก คำเตือนเกี่ยวกับตัวเลือก “--recursive”: มันทำงานทั้งกับไฟล์และไดเร็กทอรี ดังนั้นจึงไม่มีประโยชน์อย่างที่ใคร ๆ ก็หวัง เนื่องจากเราแทบไม่ต้องการให้ไฟล์และไดเร็กทอรีมีภารกิจเหมือนกัน


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: