คุณกำลังใช้-664
เพียงใช้664
แทน และไม่เคยใช้sudo
เมื่อคุณไม่ต้องการ หากเป็นไฟล์ของคุณคุณไม่จำเป็นต้องsudo
:
chmod 644 my_file
เมื่อคุณรันchmod
ด้วย-
โหมดก่อนโหมดคุณจะลบโหมดนั้น ดูman chmod
(เน้นที่เหมือง):
ตัวดำเนินการ + ทำให้บิตโหมดไฟล์ที่เลือกถูกเพิ่มลงในบิตโหมดไฟล์ที่มีอยู่ของแต่ละไฟล์ - ทำให้พวกเขาถูกลบออก ; และ = ทำให้มีการเพิ่มและทำให้บิตที่ไม่ได้กล่าวถึงถูกลบยกเว้นว่าผู้ใช้ชุดและ ID กลุ่มที่ไม่ได้กล่าวถึงของไดเรกทอรีจะไม่ได้รับผลกระทบ
ตัวเลขคือ:
- 1: ดำเนินการ
- 2: เขียน
- 4: อ่าน
ดังนั้นไฟล์ที่มี777
สิทธิ์หมายความว่าทุกคนมีสิทธิ์ที่จะทำทั้งสามอย่างตั้งแต่ 1 + 2 + 4 = 7 ดังนั้นการตั้งค่าสิทธิ์เป็น 7 หมายถึงอนุญาตให้อ่านเขียนและดำเนินการ
หากคุณเริ่มต้นด้วยไฟล์ที่มีโหมดคือ777
:
$ ls -l my_file
-rwxrwxrwx 1 terdon terdon 0 May 28 13:45 my_file
และตอนนี้ทำงานchmod -644
คุณจะลบบิต644
และจบลงด้วยไฟล์ที่มีโหมด133
:
$ chmod -644 my_file; ls -l my_file
---x-wx-wx 1 terdon terdon 0 May 28 13:45 my_file
นั่นเป็นเพราะคุณลบ 6 (read (4) + write (2)) จากการอนุญาตของเจ้าของโดยเหลือเพียง 1 (execute) set และ 4 (read) จากกลุ่มและการอนุญาตอื่น ๆ ผลลัพธ์คือไฟล์ที่มีสิทธิ์ดำเนินการ (1) สำหรับเจ้าของเท่านั้นและเขียนและดำเนินการ (คุณยกเลิกการตั้งค่า 4 เหลือ 1 และ 3) สิทธิ์สำหรับส่วนที่เหลือ
เนื่องจากไฟล์ของคุณมีสิทธิ์เริ่มต้นสำหรับไฟล์ใหม่ดังนั้น644
เมื่อคุณรันchmod -644 my_file
คุณจึงลบบิตการอนุญาตที่ตั้งค่าทั้งหมดและได้รับไฟล์ที่ไม่มีสิทธิ์สำหรับใคร
$ ls -l my_file
-rw-r--r-- 1 terdon terdon 0 May 28 13:45 my_file
$ chmod -644 my_file
$ ls -l my_file
---------- 1 terdon terdon 0 May 28 13:45 my_file
-
หน้า 644 ลองsudo chmod 644 my_file
ดู-644
จะลบสิทธิ์