คำสั่งลินุกซ์: CHMOD คำสั่ง chmod - การเปลี่ยนการอนุญาตไวยากรณ์ Chmod

เปลี่ยนการอนุญาตของไฟล์

ไวยากรณ์:

โครโมด[-fv] [-R [-H | -ล | -พี]] ไฟล์โหมด ... โครโมด[-fv] [-R [-H | -ล | -P]] [-a | +ก | =ก] ไฟล์ ACE ... โครโมด[-fhv] [-R [-H | -ล | -ป]] [ ACL_ตัวเลือก] ไฟล์ ...

ตัวเลือก:

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

สิทธิ์การเข้าถึง:

สิทธิ์การเข้าถึงสามารถระบุเป็นรหัสตัวอักษรหรือตัวเลขตามระบบเลขฐานแปด

การจัดการผ่านการอนุมัติดิจิทัล:

มีการใช้สามบิตเพื่อควบคุมสิทธิ์

  • ประการแรกคือสิทธิ์ในการอ่าน
  • ประการที่สองคือสิทธิ์ในการเขียน
  • ประการที่สาม - สิทธิ์ในการดำเนินการ
ทีละนิด ตัวเลข รหัสตัวอักษร คำอธิบายของสิทธิ
000 0 ไม่มีสิทธิ์
001 1 สิทธิในการบังคับคดีเท่านั้น
010 2 เขียนเท่านั้น
011 3 สิทธิในการบันทึกและการแสดง
100 4 อ่านเท่านั้น
101 5 สิทธิ์ในการอ่านและดำเนินการ
110 6 สิทธิในการอ่านและเขียนโดยไม่ต้องดำเนินการ
111 7 สิทธิทั้งหมด

สิทธิ์ของไฟล์ดังกล่าวกำหนดขึ้นสำหรับการเข้าถึงสามประเภท:

  • สำหรับเจ้าของ
  • สำหรับกลุ่ม
  • สำหรับผู้อื่น

เป็นผลให้คำสั่งมีลักษณะดังนี้:

$ CHMOD 444 ไฟล์ - สิทธิ์อ่านอย่างเดียวสำหรับทุกคน

$chmod 755 ไฟล์ - เจ้าของมีสิทธิ์ทั้งหมด (7) ผู้ใช้รายอื่นอ่านและเรียกใช้เท่านั้น (5)

$chmod 066 ไฟล์ - เจ้าของไม่มีสิทธิ์ในไฟล์ (0) ผู้อื่นทั้งหมดมีสิทธิ์ในการอ่านและเขียนโดยไม่ต้องดำเนินการ

การจัดการโดยใช้สิทธิ์การเข้าถึงตามตัวอักษร:

รูปแบบการระบุสิทธิ์โดยใช้รหัสสัญลักษณ์

[ใคร...][[+-=][สิทธิ์...]...][,...]

WHO เป็นการผสมผสานระหว่างตัวละคร "อูโก"ชี้ไปที่ ผู้ใช้ซึ่งสิทธิ์การเข้าถึงไฟล์หรือโฟลเดอร์จะมีการเปลี่ยนแปลง

  • ผู้ใช้ของคุณคือเจ้าของ
  • กลุ่มผู้ใช้จี
  • หรือผู้ใช้รายอื่น
  • a (ทั้งหมด) สำหรับทุกคน คล้ายกับ ugo

สุขภาพดีผู้อ่านบล็อกที่รัก! เราทุกคนต้องการให้ทุกคนหรือโฟลเดอร์ที่อยู่บนเซิร์ฟเวอร์โฮสติ้งและอยู่ในไซต์ได้รับการปกป้องให้มากที่สุดเท่าที่จะเป็นไปได้จากการเข้าถึงโดยไม่ได้รับอนุญาต

การป้องกันนี้มั่นใจได้เนื่องจากโฮสต์ 90% ใช้ระบบปฏิบัติการที่คล้ายกับ Unix ซึ่งสามารถควบคุมสิทธิ์การเข้าถึงไฟล์และไดเร็กทอรีทั้งหมดได้ เซิร์ฟเวอร์ของผู้ให้บริการโฮสติ้งของฉันซึ่งเป็นที่ตั้งของโครงการของฉันหลายโครงการก็ไม่มีข้อยกเว้น

อย่าลืมให้ความสนใจโดยไปที่ลิงก์ที่ให้ไว้ แต่ขอดำเนินการต่อ กฎที่กำหนดไว้ใน Unix แตกต่างจากกฎการทำงานในห้องผ่าตัดที่หลายคนคุ้นเคย ระบบวินโดวส์โดยที่การป้องกันในด้านนี้ไม่แข็งแกร่งจนบางครั้งนำไปสู่ผลร้ายตามมาในรูปแบบของการติดเชื้อไวรัสของระบบ

CHMOD สำหรับผู้ใช้และสิทธิ์การเข้าถึงไฟล์และโฟลเดอร์ (ไดเร็กทอรี)

ในระบบที่จัดการโดย Unix สถานการณ์จะแตกต่างออกไปและมีโอกาสที่จะทำให้ชีวิตยุ่งยากอย่างจริงจังสำหรับคนร้ายที่จะพยายามใช้ประโยชน์จากผลลัพธ์ของการทำงานอย่างอุตสาหะของคุณเป็นเวลานาน กล่าวคือกำหนดค่าสิทธิ์การเข้าถึง CHMOD อย่างถูกต้อง งานของเราคือการให้สิทธิ์ขั้นต่ำที่เป็นไปได้ในการเข้าถึงไฟล์และโฟลเดอร์ซึ่งจะไม่รบกวนการทำงานที่ถูกต้องของไซต์

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

สิทธิ์การเข้าถึงแตกต่างกันไปตามกลุ่มผู้ใช้ที่แตกต่างกัน เมื่อมีการพยายามเชื่อมต่อ เซิร์ฟเวอร์จะกำหนดกลุ่มที่จะกำหนดผู้ใช้เฉพาะให้ ผู้ใช้ทั้งหมดแบ่งออกเป็นสามประเภท:

  1. "ผู้ใช้" - เจ้าของไฟล์
  2. "กลุ่ม" - หนึ่งในสมาชิกของกลุ่มที่เจ้าของอยู่
  3. "โลก" - "ส่วนที่เหลือของโลก" นั่นคือผู้ใช้รายอื่นทั้งหมด

หากคุณเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้และเข้าสู่ระบบโดยใช้ชื่อผู้ใช้และรหัสผ่านของคุณ คุณจะถูกระบุว่าเป็น "ผู้ใช้"(u) หากมีใครเชื่อมต่อผ่าน FTP ก็จะถูกตรวจพบว่าเป็น "กลุ่ม"(g) หากผู้ใช้ใช้เบราว์เซอร์ เขาก็จะอยู่ในหมวดหมู่นั้น "โลก"(โอ)

ตอนนี้เกี่ยวกับสิทธิ์การเข้าถึงไฟล์และไดเร็กทอรีของ CMOD โดยพื้นฐานแล้วมีความแตกต่างกันเล็กน้อยแม้ว่าการกำหนดจะเหมือนกันก็ตาม สิทธิ์ของไฟล์:

  • r (อ่าน) - สิทธิ์ในการอ่านข้อมูลไฟล์
  • w (ไรท์) - สิทธิ์ในการเปลี่ยนแปลงเนื้อหา (แก้ไขได้เฉพาะเนื้อหา - เขียน แต่ไม่สามารถลบได้)
  • x (eXutive) - สิทธิ์ในการรันไฟล์

สิทธิ์การเข้าถึงโฟลเดอร์ (ไดเร็กทอรี):

  • r - สิทธิ์ในการอ่านโฟลเดอร์ (คุณสามารถรับเนื้อหาของไดเร็กทอรีนั่นคือรายการไฟล์ที่รวมอยู่ในนั้น)
  • w - สิทธิ์ในการเปลี่ยนแปลงเนื้อหา (สิทธิ์ในการสร้างและลบวัตถุในไดเร็กทอรี หากคุณมีสิทธิ์เขียนไฟล์คุณสามารถลบวัตถุที่ไม่ได้เป็นของคุณได้)
  • x - สิทธิ์ในการเข้าถึงไดเร็กทอรีเฉพาะ (ลักษณะเฉพาะที่นี่คือแม้ว่าคุณจะมีสิทธิ์ที่จำเป็นทั้งหมดในไฟล์ที่อยู่ในไดเร็กทอรี "ลึก" แต่ไม่มีสิทธิ์เข้าถึงไดเร็กทอรีย่อยอย่างน้อยหนึ่งไดเร็กทอรีบนเส้นทางไปยัง วัตถุนี้แล้วคุณจะไม่สามารถเข้าถึงได้)

เครื่องหมายยัติภังค์ “-” บ่งชี้ว่าไม่มีสิทธิ์ใดๆ สิทธิ์ทั้งหมดนี้ถูกกำหนดโดยผู้ดูแลระบบซึ่งได้รับโอกาสนี้โดยการป้อนรหัสผ่าน หากเราสามารถกำหนดข้อจำกัดสูงสุดที่เป็นไปได้สำหรับสิทธิ์การเข้าถึง CHMOD ในไฟล์ทรัพยากรบางไฟล์ได้ เราก็จะสามารถกำจัดอันตรายของโปรแกรมไวรัสที่ดำเนินการ "การกระทำสกปรก" ของพวกเขาได้ในทางปฏิบัติ

เพื่อความชัดเจน ลองพิจารณาตัวอย่างเมื่อเจ้าของไฟล์คุณมีสิทธิ์ที่เป็นไปได้ทั้งหมด: อ่าน เขียน และดำเนินการ ผู้ใช้ที่กำหนดให้กับหมวดหมู่ g (กลุ่ม) มีสิทธิ์อ่านและเขียนเท่านั้น ส่วนผู้ใช้อื่นๆ ทั้งหมด (w) มีสิทธิ์อ่านเท่านั้น จากนั้นรายการ CHMOD จะมีลักษณะดังนี้: “rwx rw- r- -”

สิทธิ์การเข้าถึงไฟล์และโฟลเดอร์ในรูปแบบดิจิทัล: CHMOD (777, 755, 444)

แต่บ่อยครั้งในกิจกรรมภาคปฏิบัติเว็บมาสเตอร์จะต้องกำหนดสิทธิ์การเข้าถึงบางประการในรูปแบบดิจิทัล:

  • r (อ่าน) - 4
  • w (บันทึก) - 2
  • x (ประสิทธิภาพ) - 1
  • - (ไม่มีสิทธิ์) - 0

ตอนนี้เรามาดูตัวอย่างข้างต้นอีกครั้งเพื่อกำหนดสิทธิ์การเข้าถึง "rwx rw- r- -" ในการแสดงสิทธิ์ของผู้ใช้แต่ละคน จะใช้การเพิ่มสิทธิ์ของเขา (r อ่าน + เขียน + x ดำเนินการ) ดังนั้นส่วนหนึ่งของรายการสำหรับเจ้าของไฟล์ คุณ (ผู้ใช้) - “rwx” จะเปลี่ยนเป็น 7 (4+2+1) สำหรับสมาชิกของกลุ่ม g (กลุ่ม) - “rw-” ใน 6 (4+2+0) และสำหรับผู้ใช้รายอื่น o (world) - “r- -” ใน 4 (4+0+0) โดยสรุป นี่คือตารางสรุปที่มีค่าของสิทธิ์การเข้าถึง CHMOD ซึ่งแสดงเป็นทั้งตัวอักษรและตัวเลข:


ตอนนี้ฉันจะนำเสนอตารางอื่นที่สะท้อนถึงสิทธิ์ CHMOD ทั้งหมดสำหรับกลุ่มผู้ใช้ทั้งหมดในรูปแบบตัวเลข:


เหล่านี้เป็นชุดค่าผสมหลักที่ใช้บ่อยที่สุดในการทำงานของผู้ดูแลเว็บ ส่วนที่เหลือเกิดขึ้นจากการเปรียบเทียบ หากคุณเป็นผู้ดูแลเว็บไซต์หรือบล็อก แต่ทำงานกับโครงการโดยไม่ต้องเชื่อมต่อผ่านโปรโตคอล FTP แสดงว่าคุณอยู่ในกลุ่ม "ผู้ใช้รายอื่น" ด้วย ในกรณีนี้ เมื่อทำงานกับไซต์ในโหมดนี้ คุณจะต้องคำนึงถึงตัวเลขสุดท้ายในค่า CHMOD

โดยปกติจะอยู่บนเซิร์ฟเวอร์ที่มีไฟล์ของคุณอยู่ บล็อกเวิร์ดเพรสโฟลเดอร์มีสิทธิ์การเข้าถึง 755 และไฟล์ที่เป็นส่วนหนึ่งของโฟลเดอร์เหล่านี้จะถูกตั้งค่าเป็น 644 ซึ่งเป็นจริงเมื่อทรัพยากรถูกสร้างขึ้นโดยใช้ไฟล์ HTML อย่างไรก็ตาม ในสภาวะสมัยใหม่ CMS (ระบบการจัดการเนื้อหา) ถูกนำมาใช้กันอย่างแพร่หลายในการสร้าง เว็บไซต์ซึ่งรวมถึงและ WordPress และที่นี่อาจมีวัตถุที่กลุ่มผู้ใช้ "โลก" จำเป็นต้องเขียนถึง อาจมีโฟลเดอร์ที่มีการดาวน์โหลดเนื้อหา รวมถึงรูปภาพด้วย

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

777 - สำหรับโฟลเดอร์ที่มีการเขียนและลบไฟล์อยู่ตลอดเวลา (สำหรับโฟลเดอร์แคช)
755 - เกี่ยวข้องกับโฟลเดอร์ที่มีการเขียนไฟล์อยู่ตลอดเวลาแต่ไม่ถูกลบ
666 - สำหรับไฟล์ที่คุณต้องการเพิ่มรายการเป็นครั้งคราว (เช่น ไฟล์ .htaccess)
644 - สำหรับไฟล์ที่อ่านอย่างเดียว (.php, .html ฯลฯ)

วิธีกำหนดค่าสิทธิ์ CHMOD โดยใช้ FileZilla FTP manager

หากคุณจำเป็นต้องทำการเปลี่ยนแปลงบางอย่างเมื่อทำงานกับทรัพยากร แต่เนื่องจากห้ามแก้ไข จึงไม่สามารถทำได้ คุณต้องเชื่อมต่อกับเซิร์ฟเวอร์โฮสต์ผ่าน FTP และเปลี่ยนสิทธิ์การเข้าถึงเป็น 777 อย่างไรก็ตาม หลังจากทำการเปลี่ยนแปลงไฟล์แล้ว ขอแนะนำให้ตั้งค่า CHMOD ก่อนหน้าอีกครั้ง

ตอนนี้เรามาเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการดำเนินการนี้โดยใช้ ในการดำเนินการนี้ ให้เปิดโปรแกรมและเชื่อมต่อผ่าน FTP ไปยังเซิร์ฟเวอร์โฮสต์ ด้านซ้าย « เซิร์ฟเวอร์ระยะไกล» ขั้นแรก เราทำเครื่องหมายไฟล์ที่จะแก้ไขแอตทริบิวต์:

และจากเมนูบริบทที่เกิดจากการกดปุ่มเมาส์ขวาให้เลือก "การอนุญาตไฟล์". หลังจากนี้กล่องโต้ตอบจะปรากฏขึ้น "เปลี่ยนคุณสมบัติของไฟล์":

ที่นี่เรากำหนดค่า CHMOD ที่จำเป็นสำหรับไฟล์ที่เลือก (หรือเลือก) แต่นี่เป็นเพียงกรณีที่คุณเลือกไฟล์หรือกลุ่มไฟล์เท่านั้น หากคุณต้องการตั้งค่าหรือเปลี่ยนค่า CHMOD สำหรับไดเร็กทอรี (โฟลเดอร์) เมื่อคุณเลือก "เปลี่ยนแอตทริบิวต์ของไฟล์" หน้าต่างแอนะล็อกจะปรากฏขึ้น ค่อนข้างแตกต่างจากหน้าต่างที่อยู่ด้านบน กล่าวคือ:

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

วันนี้ฉันอยากจะพูดเกี่ยวกับสิทธิ์การเข้าถึงไฟล์และโฟลเดอร์ (อ่าน) แนวคิดนี้มาสู่โลกแห่งเว็บมาสเตอร์จาก Linux (Unix) ระบบที่คล้ายกันซึ่งไซต์โฮสติ้งส่วนใหญ่ดำเนินการอยู่

และชื่อ Chmod นั้นเป็นชื่อของโปรแกรมใน Linux ที่ให้คุณกำหนดสิทธิ์การเข้าถึงให้กับวัตถุต่างๆ และเนื่องจากเว็บไซต์ของคุณได้รับการติดตั้งบนเซิร์ฟเวอร์ที่ใช้ Linux (Unix) ในรูปแบบใดรูปแบบหนึ่ง ดังนั้นการทำงานกับออบเจ็กต์ของเว็บไซต์ของคุณจึงอยู่ภายใต้กฎที่กำหนดโดยระบบปฏิบัติการ Linux (Unix)

ใน Windows ไฟล์เกือบทั้งหมดได้รับการตั้งค่าให้อนุญาตสูงสุด ซึ่งในความเป็นจริงแล้วนำไปสู่การครอบงำคอมพิวเตอร์ของเรา และในทางกลับกัน ยังป้องกันไม่ให้เจ้าของบริษัทป้องกันไวรัสหิวโหยจนตายอีกด้วย ในระบบ Linux (Unix) สถานการณ์จะแตกต่างออกไป - ทุกอย่างซับซ้อนมากขึ้น แต่ในขณะเดียวกันก็ปลอดภัยยิ่งขึ้น หากคุณกำหนดค่าทุกอย่างถูกต้องและมีความสามารถ คุณจะสามารถเพิ่มความปลอดภัยให้กับเว็บไซต์ของคุณได้อย่างมาก

แนวคิดพื้นฐานของสิทธิ์การเข้าถึงไฟล์และโฟลเดอร์

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

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

ก่อนอื่นมาทำความเข้าใจแก่นแท้ของปัญหาเพื่อทำความเข้าใจว่าเรากำลังตั้งค่าอะไรและอย่างไร มาเริ่มกันเลย สิทธิ์การเข้าถึงจะถูกแยกออกจากไฟล์และไดเร็กทอรี พวกมันถูกกำหนดให้เหมือนกัน แต่มีความหมายต่างกันเล็กน้อย

ในทางกลับกัน เป็นไปได้เกี่ยวกับไฟล์:

  • r - สิทธิ์ในการอ่านข้อมูล
  • w - เพื่อเปลี่ยนเนื้อหา (บันทึก - เปลี่ยนเฉพาะเนื้อหาเท่านั้น แต่ไม่ลบ)
  • x - เพื่อรันไฟล์

มาดูความสามารถในการเรียกใช้ไฟล์ให้ละเอียดยิ่งขึ้น ความจริงก็คือใน Linux สามารถเรียกใช้ไฟล์ใดก็ได้ ไม่ว่าจะเป็นผู้บริหารไม่ได้ถูกกำหนดโดยการขยาย (แนวคิดในการขยายไม่มีอยู่) ระบบไฟล์ Unix) และโดยสิทธิ์การเข้าถึง Chmod หากไฟล์มีการตั้งค่าการดำเนินการที่ถูกต้อง “X” แสดงว่าไฟล์นั้นสามารถดำเนินการได้

เกี่ยวข้องกับไดเร็กทอรี เป็นไปได้:

  1. r - สิทธิ์ในการอ่านไดเร็กทอรี (คุณสามารถอ่านเนื้อหาของไดเร็กทอรีได้ เช่น รับรายการวัตถุที่อยู่ในนั้น)
  2. w - เพื่อเปลี่ยนเนื้อหาของไดเร็กทอรี (คุณสามารถสร้างและลบออบเจ็กต์ในไดเร็กทอรีได้และหากคุณมีสิทธิ์ในการเขียนคุณสามารถลบไฟล์ที่ไม่ได้เป็นของคุณได้)
  3. x - เพื่อเข้าสู่ไดเร็กทอรี (จะถูกตรวจสอบก่อนเสมอและแม้ว่าคุณจะมีสิทธิ์ที่จำเป็นทั้งหมดบนวัตถุที่ฝังลึกอยู่ในห่วงโซ่ไดเร็กทอรี แต่ไม่มีแอตทริบิวต์ "X" เพื่อเข้าถึงไดเร็กทอรีอย่างน้อยหนึ่งไดเร็กทอรี ทางไปไฟล์มันแล้วคุณจะไม่มีวันผ่านมันไปได้)

ในระบบ Linux ทั้งหมดนี้เผยแพร่โดยผู้ดูแลระบบหลักของคอมพิวเตอร์ซึ่งเขาสามารถเข้าถึงได้โดยการป้อนรหัสผ่าน และหากวัตถุส่วนใหญ่มีสิทธิ์แบบอ่านอย่างเดียวไวรัสก็จะไม่ทำอะไรเลยบนคอมพิวเตอร์เครื่องนั้นเพราะว่า พวกเขาไม่สามารถเขียนตัวเองที่นั่นหรือจะสมหวังได้ นี่คือผลลัพธ์ที่เราต้องบรรลุโดยการตั้งค่า Chmod ที่จำเป็นบนออบเจ็กต์ของไซต์ของเรา

สิทธิพิเศษสำหรับกลุ่มผู้ใช้

สิทธิพิเศษนั้นแบ่งออกเป็นสามประเภทขึ้นอยู่กับว่าใครเป็นผู้เข้าถึงออบเจ็กต์:

  • “ผู้ใช้” - คุณ (เจ้าของไฟล์โดยตรง)
  • "กลุ่ม" - g (สมาชิกของกลุ่มเดียวกันกับเจ้าของ)
  • "โลก" - o (อื่น ๆ ทั้งหมด)

เซิร์ฟเวอร์จะกำหนดกลุ่มผู้ใช้ที่จะกำหนดให้คุณเมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ ตัวอย่างเช่น เมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน FTP คุณจะเข้าสู่ระบบด้วยชื่อผู้ใช้ (และรหัสผ่าน) ของคุณ จากนั้นเซิร์ฟเวอร์จะกำหนดคุณให้กับกลุ่ม “ผู้ใช้” (“u)”

ผู้ใช้รายอื่นที่เชื่อมต่อผ่าน FTP ไปยังเซิร์ฟเวอร์จะถูกกำหนดให้อยู่ในกลุ่ม “กลุ่ม” (“g”) และผู้เยี่ยมชมที่เข้ามายังเว็บไซต์ของคุณโดยใช้เบราว์เซอร์ของพวกเขาจะถูกกำหนดให้อยู่ในกลุ่ม “โลก” (“o”) .

การเปลี่ยนแปลงของค่าที่เป็นไปได้สามค่า "r", "w" และ "x" สำหรับสามหมวดหมู่ "u", "g" และ "o" และ กำหนด Chmod ให้กับไฟล์. หากไม่ได้ระบุหมวดหมู่ จะแทนที่ด้วยยัติภังค์ “-” สิทธิพิเศษจะถูกระบุตามลำดับตามลำดับที่กำหนด:

  1. สิทธิ์ของเจ้าของก่อน - "คุณ"
  2. จากนั้นสำหรับกลุ่ม - "g"
  3. และท้ายที่สุด - สำหรับคนอื่น ๆ - "o"

หลังจากที่เซิร์ฟเวอร์กำหนดผู้เยี่ยมชมให้กับกลุ่มใดกลุ่มหนึ่ง มันจะให้สิทธิ์แก่เขาในการดำเนินการกับวัตถุ หลังจากนั้นผู้เยี่ยมชมจะสามารถอ่าน เขียน หรือดำเนินการไฟล์ได้ (ขึ้นอยู่กับว่ากลุ่มของเขาได้รับอนุญาตให้ทำอะไรกับวัตถุนี้) .

หากต้องการดูเนื้อหาของไดเร็กทอรี จะต้องมีแอตทริบิวต์การอ่าน "r" (สำหรับกลุ่มที่เซิร์ฟเวอร์กำหนดผู้เยี่ยมชม) หากต้องการสร้างไฟล์หรือโฟลเดอร์ในไฟล์ที่มีอยู่ คุณต้องมีสิ่งนี้ ไดเรกทอรีที่มีอยู่มีแอตทริบิวต์สำหรับรายการ "w"

เพื่อความชัดเจน ลองดูตัวอย่างที่เจ้าของไฟล์ (“ผู้ใช้” - “u”) มีสิทธิ์ทั้งหมด: ในการอ่าน เขียนและดำเนินการ และผู้ใช้รายอื่นทั้งหมดมีสิทธิ์ในการอ่านเท่านั้น รายการสำหรับ Chmod ดังกล่าวจะมีลักษณะดังนี้: “rwx r-- r--”

มาดูรายละเอียดกัน: "rwx" (บันทึกนี้ระบุสิทธิ์ในวัตถุสำหรับเจ้าของ - "u"), "r--" (บันทึกนี้ระบุสิทธิ์ในวัตถุเดียวกัน แต่หากผู้เยี่ยมชมได้รับมอบหมาย ไปยังกลุ่มโดยเซิร์ฟเวอร์ - " g"), "r--" (รายการนี้ตั้งค่าสิทธิ์บนวัตถุสำหรับผู้ใช้รายอื่นทั้งหมด - "o")

การอนุญาตไฟล์และโฟลเดอร์แตกต่างกันอย่างไร?

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

และยังมีป้ายแสดงการผสม Chmod ต่างๆ สำหรับ ประเภทต่างๆวัตถุ:

ไม่มีอะไรสามารถทำได้

การเข้าถึงไดเรกทอรีและไดเรกทอรีย่อยถูกปฏิเสธ

สามารถดูและเปลี่ยนแปลงเนื้อหาได้

คุณสามารถเพิ่ม ลบ เปลี่ยนไฟล์ไดเร็กทอรีได้

ดำเนินการหากไฟล์เป็นไบนารี่

ผู้ใช้ก็สามารถทำได้ ไฟล์ไบนารีการมีอยู่ซึ่งเขารู้ ห้ามเข้าหรืออ่านบัญชีรายชื่อ

Chmod แสดงเป็นตัวเลข (777, 400, 666, 755, 444)

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

แท้จริงแล้วสิทธิพิเศษยังระบุด้วยตัวเลข:

  1. r (อ่าน) ถูกแทนที่ด้วย 4
  2. w (บันทึก) ถูกแทนที่ด้วย 2
  3. x (การดำเนินการ) ถูกแทนที่ด้วย 1
  4. 0 หมายถึง ไม่ทำอะไรเลย (สิ่งที่แสดงด้วยยัติภังค์ในรูปแบบตัวอักษร)

กลับไปที่ตัวอย่างการบันทึกที่ฉันให้ไว้ก่อนหน้านี้เล็กน้อย: rwx r-- r-- หากเราแทนที่ตัวอักษรและยัติภังค์ด้วยตัวเลขตามกฎที่เพิ่งอธิบายและในเวลาเดียวกันบวกตัวเลขในแต่ละสามเราจะได้รูปแบบดิจิทัลของรายการนี้: 744

เหล่านั้น. ปรากฎว่าผลรวมของตัวเลขเหล่านี้แสดง Chmod สัมพันธ์กับไฟล์หรือโฟลเดอร์ ตัวอย่างเช่น:

  • 7 (rwx) = 4 + 2 +1 (สิทธิ์เต็ม)
  • 5 (r-x)= 4 + 0 + 1 (อ่านและดำเนินการ)
  • 6 (rw-) = 4 + 2 + 0 (อ่านและเขียน)
  • 4 (r--) =4 + 0 + 0 (อ่านอย่างเดียว)
  • ฯลฯ

ตารางนี้แสดงการรวมสิทธิ์ที่เป็นไปได้ทั้งหมดที่บันทึกแบบดิจิทัล:

ตอนนี้เรามาดูการผสมสัญกรณ์ตัวเลขต่างๆ ที่สัมพันธ์กับกลุ่มผู้ใช้:

"เจ้าของ"

"กลุ่ม"

"พักผ่อน"

ดำเนินการ

ดำเนินการ

ดำเนินการ

คุณเอง (ยกเว้นกรณีที่คุณเข้าถึงไซต์ผ่าน FTP) และผู้เยี่ยมชมอื่น ๆ ทั้งหมดในทรัพยากรของคุณอยู่ในกลุ่ม "คำ" (ทุกคน) ดังนั้นในการทำงานกับเว็บไซต์เราต้องดูที่สุดท้ายก่อน (ที่สาม ) หลักของรายการนี้

เพื่อให้ไฟล์สคริปต์ "เปิดตัว" เมื่อผู้ใช้ทำงานกับไซต์ การตั้งค่าสิทธิ์เริ่มต้นจาก "4" (r-- – อ่านอย่างเดียว) ก็เพียงพอแล้ว (5,6,7 จะทำเช่นกัน แต่จะซ้ำซ้อนในแง่ของความปลอดภัย)

สำหรับไดเร็กทอรีที่มีไฟล์ของสคริปต์นี้อยู่ คุณต้องตั้งค่าขั้นต่ำเป็น "5" (r-x - คุณสามารถไปที่ไดเร็กทอรีและอ่านเนื้อหาได้ คุณไม่สามารถลบหรือเพิ่มได้) 7 ก็ใช้งานได้เช่นกัน แต่จะซ้ำซ้อนในแง่ของความปลอดภัยด้วย

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

เป็นไปได้มากว่าบนเซิร์ฟเวอร์ที่คุณคัดลอกเนื้อหาของเอ็นจิ้นเว็บไซต์ของคุณ Chmods ต่อไปนี้จะถูกติดตั้งบนออบเจ็กต์:

หากคุณมีทรัพยากรที่ประกอบด้วยเพียง หน้า htmlแล้วเราก็จะทิ้งทุกอย่างไว้แบบนั้นได้ แต่ไซต์สมัยใหม่สร้างขึ้นจากเครื่องมือและอาจมีวัตถุที่ต้องเขียนถึงในนามของผู้เยี่ยมชมจากกลุ่ม "โลก" - o (อื่น ๆ ทั้งหมด) สิ่งเหล่านี้อาจเป็นไดเร็กทอรีที่ใช้สำหรับการแคชเพจหรือไดเร็กทอรีที่จะโหลดรูปภาพ ฯลฯ ในขณะที่คุณทำงานกับไซต์

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

สำหรับไดเร็กทอรีทั้งหมดที่ควรเขียนไฟล์ แต่ไม่จำเป็นต้องลบเป็นประจำ

สำหรับโฟลเดอร์ที่ควรเขียนและลบไฟล์ (เช่นสำหรับแคช)

สำหรับ ไฟล์ง่ายๆ, อ่านอย่างเดียว (.html, .php ฯลฯ)

สำหรับไฟล์ที่อาจจำเป็นต้องเขียนถึง (เช่น ด้วยฐานข้อมูล .dat)

วิธีกำหนด Chmod โดยใช้ PHP

ทั้งหมดนี้สามารถนำมาใช้ในทางปฏิบัติกับเว็บไซต์ของคุณได้อย่างไร? โดยหลักการแล้วทุกอย่างก็เรียบง่าย ในการกำหนดสิทธิ์การเข้าถึงคุณสามารถ:

แต่ถ้าคุณไม่สามารถเปลี่ยน Chmod เป็นไฟล์ใดๆ ได้ คุณสามารถลองกำหนดไฟล์เหล่านั้นโดยใช้เครื่องมือ PHP ได้ คุณสามารถใช้รหัสต่อไปนี้:

คุณจะต้องแทนที่ file_name_x.php และ directory_name_x ด้วยชื่อจริงของไฟล์และโฟลเดอร์ที่คุณต้องการเปลี่ยน mod ดังนั้นสำหรับไฟล์จะถูกตั้งค่าเป็น 666 และสำหรับไดเร็กทอรี - 777 วางโค้ด PHP นี้ลงในไฟล์โดยใช้ข้อความจดบันทึก (ฉันแนะนำ) และให้นามสกุลเป็น .php เช่น prava.php

คัดลอก prava.php ผ่าน FTP ไปยังไดเร็กทอรีที่ใช้งานไม่ได้ วิธีปกติกำหนดสิทธิ์การเข้าถึง ใน แถบที่อยู่เบราว์เซอร์ เขียนเส้นทางไปยัง prava..php) แล้วกด “Start” หรือ Enter บนแป้นพิมพ์ เพียงเท่านี้สิทธิ์ก็จะเปลี่ยนไปโดยสิ้นเชิงโดยใช้ PHP

สำหรับ Joomla หลังจากติดตั้งแล้ว คุณสามารถตั้งค่า 777 เป็นไดเร็กทอรีต่อไปนี้:

ผู้ดูแลระบบ/การสำรองข้อมูล/ ผู้ดูแลระบบ/แคช/ ผู้ดูแลระบบ/ส่วนประกอบ/ ผู้ดูแลระบบ/โมดูล/ ผู้ดูแลระบบ/แม่แบบ/ แคช/ ส่วนประกอบ/ รูปภาพ/ รูปภาพ/แบนเนอร์/ รูปภาพ/เรื่องราว/ ภาษา/ ภาษา/en-GB/ ภาษา/ru-RU/ สื่อ/ โมดูล/ ปลั๊กอิน/ ปลั๊กอิน/เนื้อหา/ ปลั๊กอิน/ค้นหา/ ปลั๊กอิน/ระบบ/ เทมเพลต/

หลังจากที่คุณติดตั้งส่วนขยายทั้งหมดสำหรับ Joomla และทำการตั้งค่าขั้นสุดท้ายแล้ว Chmod ไปยังไดเร็กทอรีด้านบนส่วนใหญ่จะตามมาเพื่อเพิ่มความปลอดภัยของไซต์ กลับไปที่ 755. คุณจะต้องออกจาก 777 สำหรับไดเร็กทอรีที่มีแคช ข้อมูลสำรอง และรูปภาพ

สำหรับไฟล์เอ็นจิ้นที่อยู่ในรูทของไซต์ ยกเว้น sitemap.xml ควรตั้งค่า 444 (อ่านอย่างเดียวสำหรับกลุ่มผู้เข้าชมทั้งหมด) ใน setup.php บางครั้งแนะนำให้ตั้งค่าเป็น 400 ด้วยซ้ำ

ฉันสามารถให้คำแนะนำเดียวกันทุกประการเกี่ยวกับการตั้งค่าสิทธิ์การเข้าถึงออบเจ็กต์ในกลไก SMF และ WordPress ขอแนะนำให้ปล่อยไว้เป็นการถาวรหากเป็นไปได้ สำหรับไดเรกทอรี 755(ยกเว้นแคช รูปภาพ ไดเร็กทอรีสำรองที่กล่าวถึงข้างต้น และอาจมีรายการอื่นๆ ตามความจำเป็น) และ สำหรับไฟล์ - 644.

ควรตั้งค่า 444 เป็นไฟล์ในรูทของไซต์จะดีกว่า

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

ขอให้โชคดี! พบกันเร็ว ๆ นี้ในหน้าของเว็บไซต์บล็อก

คุณอาจจะสนใจ

การเข้ารหัสข้อความ ASCII (Windows 1251, CP866, KOI8-R) และ Unicode (UTF 8, 16, 32) - วิธีแก้ไขปัญหาแครกเกอร์
OpenServer - ทันสมัย เซิร์ฟเวอร์ท้องถิ่นและตัวอย่างการใช้งานติดตั้ง WordPress บนคอมพิวเตอร์
ที่อยู่ URL คืออะไร ลิงก์แบบสัมบูรณ์และลิงก์สัมพัทธ์สำหรับเว็บไซต์แตกต่างกันอย่างไร
ค้นหายานเดกซ์ตามไซต์และร้านค้าออนไลน์
แผนผังไซต์ แผนผังไซต์ในรูปแบบ xml สำหรับ Yandex และ Google - วิธีสร้างแผนผังไซต์ใน Joomla และ WordPress หรือในตัวสร้างออนไลน์

(ค่าเริ่มต้นของการอนุญาตไฟล์คือ rwxrwxrwx - การเข้าถึงแบบเต็มสำหรับทุกคน) การลบสิทธิ์ในการรันไฟล์สำหรับผู้ใช้และกลุ่มทั้งหมด:

$chmod a-x ไฟล์(rw-rw-rw-)

หากต้องการยกเลิกการเขียนลงในไฟล์โดยกลุ่มและผู้ใช้รายอื่น:

$ ไฟล์ chmod go-w (rw-r–r–)

การอนุญาตให้เรียกใช้ไฟล์โดยเจ้าของ:

$ chmod ไฟล์ u+x (rwxr–r–)

การให้สิทธิ์แก่กลุ่มเหมือนกับเจ้าของไฟล์:

ไฟล์ $ chmod g=u (rwxrwxr–)

ยกเลิกการอ่านและเขียนไฟล์โดยผู้ใช้กลุ่มและผู้ใช้อื่น:

$ chmod ไฟล์ go-rw (rwx–x-)

ตัวอย่างการใช้คำสั่ง chmod ในโหมดสัมบูรณ์

สิทธิ์ในการอ่าน เขียน รันไฟล์ไฟล์โดยผู้ใช้และกลุ่มทั้งหมด (การควบคุมเต็มรูปแบบ):

ไฟล์ $ chmod 777 (rwxrwxrwx)

ตั้งค่าสิทธิ์การอ่านและเขียนสำหรับเจ้าของ กลุ่ม และผู้ใช้รายอื่น:

ไฟล์ $ chmod 666 (rw-rw-rw-)

การตั้งค่าการเข้าถึงไฟล์โดยสมบูรณ์สำหรับเจ้าของและอ่านอย่างเดียวสำหรับกลุ่มและผู้ใช้รายอื่น:

ไฟล์ $ chmod 744 (rwxr–r–)

การตั้งค่าการเข้าถึงไฟล์แบบเต็มสำหรับเจ้าของไฟล์และการปฏิเสธการเข้าถึงกลุ่มและผู้ใช้รายอื่น:

ไฟล์ $ chmod 700 (rwx--)

การตั้งค่าสิทธิ์การอ่านและเขียนสำหรับเจ้าของไฟล์และอ่านอย่างเดียวสำหรับกลุ่มและผู้อื่น:

ไฟล์ $ chmod 644 (rw-r–r–)

การตั้งค่าสิทธิ์การอ่านและเขียนสำหรับเจ้าของไฟล์และกลุ่มของเขา และการปฏิเสธการเข้าถึงของผู้อื่น:

ไฟล์ $ chmod 640 (rw-r-–)

การตั้งค่าการเข้าถึงไฟล์ด้วยสิทธิ์การอ่านสำหรับผู้ใช้และกลุ่มทั้งหมด:

ไฟล์ $ chmod 444 (r–r–r–)

การอนุญาตไฟล์สำหรับการอ่าน เขียน ดำเนินการโดยเจ้าของ และการอ่าน ดำเนินการโดยกลุ่มและอื่นๆ:

ไฟล์ $ chmod 755 (rwxr-xr-x)

อนุญาตให้อ่านและดำเนินการเข้าถึงไฟล์สำหรับผู้ใช้และผู้อื่น และปฏิเสธการเข้าถึงกลุ่ม:

ไฟล์ $ chmod 505 (r-x-r-x)

หากคุณต้องการกำหนดสิทธิ์ให้กับไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบัน เพียงใส่ * (เครื่องหมายดอกจัน) หลังสิทธิ์ที่คุณกำหนด:

$chmod 755 *

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

$ ชโมด -R 777 *

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

การเปลี่ยนการอนุญาตเฉพาะสำหรับไดเร็กทอรี (แบบเรียกซ้ำ)

$ ค้นหา /path/to/base/dir -type d -exec chmod 755() +

$ chmod 755 $ (ค้นหา /path/to/base/dir -type d)

$ chmod 755 `ค้นหา /path/to/base/dir -type d`

$ ค้นหา /path/to/base/dir -type d -print0 | xargs -0 chmod 755

เปลี่ยนการอนุญาตสำหรับไฟล์เท่านั้น (ซ้ำ)

$ ค้นหา /path/to/base/dir -type f -exec chmod 644() +

$ chmod 644 $ (ค้นหา /path/to/base/dir -type f)

$ chmod 0755 `ค้นหา ./ -type f`

$ find /path/to/base/dir -type f -print0 | xargs -0 chmod 644

ไวยากรณ์ Chmod สำหรับโฟลเดอร์และไฟล์

ก่อนอื่นมาทำความเข้าใจแก่นแท้ของปัญหากับ Chmod เพื่อทำความเข้าใจว่าเรากำหนดค่าอะไรกันแน่และอย่างไร มาเริ่มกันเลย สิทธิ์การเข้าถึงแบ่งออกเป็น Chmod สำหรับไฟล์และ Chmod สำหรับไดเร็กทอรี พวกมันถูกกำหนดให้เหมือนกัน แต่มีความหมายต่างกันเล็กน้อย

สิทธิ์การเข้าถึง (Chmod) ไปยังไฟล์แบ่งออกเป็น:

    r - สิทธิ์ในการอ่านข้อมูล

    w - สิทธิ์ในการเปลี่ยนแปลงเนื้อหา (เขียน - เปลี่ยนเนื้อหาเท่านั้น แต่ไม่สามารถลบได้)

    x - สิทธิ์ในการรันไฟล์

มาดูสิทธิ์ในการดำเนินการของไฟล์ให้ละเอียดยิ่งขึ้น ความจริงก็คือใน linux (Unix) ไฟล์ใดก็ได้ที่สามารถดำเนินการได้ ไม่ว่าจะปฏิบัติการได้หรือไม่นั้นไม่ได้ถูกกำหนดโดยส่วนขยาย (แนวคิดของส่วนขยายไม่ได้อยู่ในไฟล์ ระบบยูนิกซ์) และโดยสิทธิ์การเข้าถึง Chmod หากไฟล์มีสิทธิ์ “X” (chmod x) แสดงว่าไฟล์นั้นสามารถดำเนินการได้

ตอนนี้เกี่ยวกับสิทธิ์การเข้าถึง (Chmod) ไปยังโฟลเดอร์ (ไดเรกทอรี):

    r - สิทธิ์ในการอ่านไดเร็กทอรี (คุณสามารถอ่านเนื้อหาของไดเร็กทอรีได้ เช่น รับรายการวัตถุที่อยู่ในนั้น)

    w - สิทธิ์ในการเปลี่ยนแปลงเนื้อหาของไดเร็กทอรี (คุณสามารถสร้างและลบออบเจ็กต์ในไดเร็กทอรีนี้ได้ และหากคุณมีสิทธิ์ในการเขียน คุณสามารถลบไฟล์ที่ไม่ได้เป็นของคุณได้)

    x - สิทธิ์ที่อนุญาตให้คุณเข้าสู่ไดเร็กทอรี (สิทธิ์นี้จะถูกตรวจสอบก่อนเสมอและแม้ว่าคุณจะมีสิทธิ์ที่จำเป็นทั้งหมดสำหรับวัตถุที่ฝังลึกอยู่ในห่วงโซ่ไดเร็กทอรี แต่คุณก็ไม่มีสิทธิ์ "X" ใน เข้าถึงไดเร็กทอรีอย่างน้อยหนึ่งไดเร็กทอรีบนเส้นทางไปยังไฟล์นี้ จากนั้นคุณจะไม่มีทางผ่านเข้าไปได้)

ใน ระบบลินุกซ์(Unix) สิทธิ์ทั้งหมดเหล่านี้เผยแพร่โดยผู้ดูแลระบบหลักของคอมพิวเตอร์ซึ่งเขาสามารถเข้าถึงได้โดยการป้อนรหัสผ่าน และหากวัตถุส่วนใหญ่มีสิทธิ์การเข้าถึงแบบอ่านอย่างเดียว (Chmod) ไวรัสก็จะไม่ทำอะไรเลยบนคอมพิวเตอร์เครื่องนั้นเพราะ พวกเขาไม่สามารถเขียนตัวเองที่นั่นหรือจะสมหวังได้ นี่คือผลลัพธ์ที่เราต้องบรรลุโดยการตั้งค่าสิทธิ์การเข้าถึง (Chmod) ให้กับออบเจ็กต์บนไซต์ของเรา

ไวยากรณ์ Chmod สำหรับกลุ่มผู้ใช้

สิทธิ์การเข้าถึงด้วยตนเอง (Chmod) แบ่งออกเป็น 3 ประเภท ขึ้นอยู่กับว่าใครเป็นผู้เข้าถึงออบเจ็กต์:

    “ผู้ใช้” - คุณ (เจ้าของไฟล์โดยตรง)

    "กลุ่ม" - g (สมาชิกของกลุ่มเดียวกันกับเจ้าของ)

    "โลก" - o (อื่น ๆ ทั้งหมด)

เซิร์ฟเวอร์จะกำหนดกลุ่มผู้ใช้ที่จะกำหนดให้คุณเมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ ตัวอย่างเช่น เมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน FTP คุณจะเข้าสู่ระบบด้วยชื่อผู้ใช้ (และรหัสผ่าน) ของคุณ จากนั้นเซิร์ฟเวอร์จะกำหนดคุณให้กับกลุ่ม “ผู้ใช้” (“u)” ผู้ใช้รายอื่นที่เชื่อมต่อผ่าน FTP ไปยังเซิร์ฟเวอร์จะถูกกำหนดให้อยู่ในกลุ่ม “กลุ่ม” (“g”) และผู้ใช้ที่เข้ามายังไซต์ของคุณโดยใช้เบราว์เซอร์ของตนจะถูกกำหนดให้อยู่ในกลุ่ม “โลก” (“o”) .

การเปลี่ยนแปลงของค่าที่เป็นไปได้สามค่า "r", "w" และ "x" สำหรับสามหมวดหมู่ "u", "g" และ "o" จะกำหนด Chmod ให้กับไฟล์ หากไม่ได้ระบุหมวดหมู่ จะแทนที่ด้วยยัติภังค์ “-” สิทธิ์การเข้าถึง (Chmod) มีการระบุตามลำดับตามลำดับที่กำหนด:

    สิทธิ์ของเจ้าของก่อน - "คุณ"

    จากนั้นสำหรับกลุ่ม - "g"

    และในตอนท้ายของสิทธิ์สำหรับคนอื่น - “o”

หลังจากที่เซิร์ฟเวอร์กำหนดผู้ใช้ให้กับกลุ่มใดกลุ่มหนึ่ง มันจะให้สิทธิ์แก่เขาในการดำเนินการกับวัตถุ หลังจากนั้นผู้ใช้จะสามารถอ่าน เขียน หรือดำเนินการไฟล์ได้ (ขึ้นอยู่กับว่ากลุ่มของเขาได้รับอนุญาตให้ทำอะไรกับวัตถุนี้) หากต้องการดูเนื้อหาของโฟลเดอร์ จะต้องมีแอตทริบิวต์การอ่าน "r" (สำหรับกลุ่มที่เซิร์ฟเวอร์กำหนดผู้ใช้) หากต้องการสร้างไฟล์หรือโฟลเดอร์ในไฟล์ที่มีอยู่ จะต้องมีแอตทริบิวต์ Chmod ในรายการ "w"

เพื่อความชัดเจน ลองดูตัวอย่างที่เจ้าของไฟล์ (“ผู้ใช้” - “u”) มีสิทธิ์ทั้งหมด: สิทธิ์ในการอ่าน เขียนและดำเนินการ และผู้ใช้รายอื่นทั้งหมดมีสิทธิ์อ่านเท่านั้น รายการสำหรับ Chmod ดังกล่าวจะมีลักษณะดังนี้: “rwx r-- r--” มาดูรายละเอียดกัน: “rwx” (บันทึกนี้ระบุสิทธิ์ในวัตถุสำหรับเจ้าของ - “u”), “r--” (บันทึกนี้ระบุสิทธิ์ในวัตถุเดียวกัน แต่ถ้าผู้ใช้ได้รับมอบหมาย โดยเซิร์ฟเวอร์ไปยังกลุ่ม - “g "), "r--" (รายการนี้ระบุสิทธิ์ในวัตถุสำหรับผู้ใช้รายอื่นทั้งหมด - o")

ความแตกต่างระหว่างไฟล์ Chmod และโฟลเดอร์คืออะไร

ไม่มีอะไรสามารถทำได้

การเข้าถึงไดเรกทอรีและไดเรกทอรีย่อยถูกปฏิเสธ

สามารถดูและเปลี่ยนแปลงเนื้อหาได้

คุณสามารถเพิ่ม ลบ เปลี่ยนไฟล์โฟลเดอร์ได้

ดำเนินการหากไฟล์เป็นไบนารี่

ผู้ใช้สามารถรันไฟล์ไบนารี่ที่เขารู้ว่ามีอยู่ แต่ไม่ได้รับอนุญาตให้เข้าหรืออ่านไดเร็กทอรี

ไวยากรณ์ Chmod แสดงเป็นตัวเลข (777)

คุณจะเห็นว่ารายการที่ใช้ตัวอักษรละตินและยัติภังค์ที่นี่ใช้เพื่ออธิบายสิทธิ์การเข้าถึง แต่คุณอาจพบความจริงที่ว่า Chmod มักจะระบุในรูปแบบดิจิทัลเช่นชุดค่าผสมที่รู้จักกันดี: Chmod 777 ซึ่งอนุญาตทุกอย่าง ถึงทุกคน แท้จริงแล้วสิทธิ์การเข้าถึง (Chmod) นั้นระบุด้วยตัวเลขด้วย:

    w (บันทึก) ถูกแทนที่ด้วย 2

    x (การดำเนินการ) ถูกแทนที่ด้วย 1

0 หมายถึง - ไม่ทำอะไรเลย (สิ่งที่แสดงด้วยยัติภังค์ในรูปแบบตัวอักษร) กลับไปที่ตัวอย่างการเขียนสิทธิ์การเข้าถึงที่ฉันให้ไว้ก่อนหน้านี้เล็กน้อย: rwx r-- r-- หากเราแทนที่ตัวอักษรและยัติภังค์ด้วยตัวเลขตามกฎที่เพิ่งอธิบายและในเวลาเดียวกันบวกตัวเลขในแต่ละสามเราจะได้รูปแบบดิจิทัลของรายการนี้: 744 นั่นคือ ปรากฎว่าผลรวมของตัวเลขเหล่านี้แสดง Chmod ไปยังไฟล์หรือโฟลเดอร์ ตัวอย่างเช่น:

    7 (rwx) = 4 + 2 +1 (สิทธิ์เต็ม)

    5 (r-x)= 4 + 0 + 1 (อ่านและดำเนินการ)

    6 (rw-) = 4 + 2 + 0 (อ่านและเขียน)

    4 (r--) =4 + 0 + 0 (อ่านอย่างเดียว)

ตารางนี้แสดงชุดค่าผสม Chmod ที่เป็นไปได้ทั้งหมดที่เขียนแบบดิจิทัล:

ตอนนี้เรามาดูตัวเลขผสม Chmod ต่างๆ ที่เกี่ยวข้องกับกลุ่มผู้ใช้:

""เจ้าของ""

""กลุ่ม""

""พักผ่อน""

ดำเนินการ

ดำเนินการ

ดำเนินการ

คุณเอง (ยกเว้นกรณีที่คุณเข้าถึงไซต์ผ่าน FTP) และผู้เยี่ยมชมไซต์ของคุณอื่น ๆ ทั้งหมดอยู่ในกลุ่ม "คำ" (ทุกคน) ดังนั้นในการทำงานกับเว็บไซต์เราต้องดูที่สุดท้ายก่อน (ที่สาม ) หมายเลข Chmod เพื่อให้สคริปต์ "เรียกใช้ไฟล์" เมื่อผู้ใช้ทำงานกับไซต์ การตั้งค่าสิทธิ์การเข้าถึง (Chmod) ก็เพียงพอแล้ว โดยเริ่มจาก "4" (r-- – อ่านอย่างเดียว) ( 5,6,7 ก็เหมาะสมเช่นกัน แต่จะไม่จำเป็นในแง่ของความปลอดภัย)

“ สำหรับโฟลเดอร์” ซึ่งมีไฟล์ของสคริปต์นี้อยู่คุณจะต้องตั้งค่าขั้นต่ำเป็น“ 5” (r-x - คุณสามารถเข้าไปในโฟลเดอร์และอ่านเนื้อหาได้คุณไม่สามารถลบหรือเพิ่มได้) 7 ก็ใช้งานได้เช่นกัน แต่จะซ้ำซ้อนในแง่ของความปลอดภัยด้วย หากคุณต้องการให้สคริปต์ไม่เพียงอ่าน แต่ยัง "เขียน" ข้อมูลบางส่วนด้วย (เช่นที่ผู้ใช้ป้อน) สิทธิ์ขั้นต่ำสำหรับ "โฟลเดอร์" จะยังคงเป็น "5" แต่สำหรับ "ไฟล์" คุณ จะต้องมีสิทธิ์ "6" "(อ่านและเขียน) อยู่แล้ว

เป็นไปได้มากว่าบนเซิร์ฟเวอร์ที่คุณคัดลอกเนื้อหาของเอ็นจิ้นเว็บไซต์ของคุณ Chmods ต่อไปนี้จะถูกติดตั้งบนออบเจ็กต์:

โฟลเดอร์ 755

เจ้าของ (ผู้ใช้) ทำทุกอย่างได้ ทั้งกลุ่มและคนอื่นๆ ทำได้เพียงอ่านโฟลเดอร์และเข้าไปเท่านั้น แต่ห้ามมิให้เขียนไฟล์ เปลี่ยนชื่อ และลบในไดเร็กทอรี (rwxr-xr-x)

ไฟล์ 644

หากคุณมีเว็บไซต์ที่มีเพียง html คุณก็สามารถทิ้งทุกอย่างไว้แบบนั้นได้ แต่ไซต์สมัยใหม่สร้างขึ้นจากเครื่องมือและอาจมีวัตถุที่ต้องเขียนในนามของผู้ใช้จากกลุ่ม "โลก" - o (อื่น ๆ ทั้งหมด) สิ่งเหล่านี้อาจเป็นโฟลเดอร์ที่ใช้สำหรับแคชเพจหรือโฟลเดอร์ที่จะโหลดรูปภาพ ฯลฯ ในขณะที่คุณทำงานกับไซต์ ไม่ต้องบอกว่าหากคุณเข้าถึงไซต์ผ่าน FTP คุณสามารถสร้างรายการในไฟล์หรือโฟลเดอร์เหล่านี้ได้ แต่การทำงานกับอินเทอร์เฟซของเว็บไซต์ในฐานะผู้ใช้ทั่วไปคุณอาจประสบปัญหาได้ ดังนั้น การติดตั้ง Chmod บางตัวจะต้องได้รับการคัดเลือก

คำสั่ง chmod ใช้เพื่อเปลี่ยนการอนุญาตของไฟล์หรือไดเร็กทอรี

บน Linux และ Unix อื่นๆ ระบบปฏิบัติการสำหรับแต่ละไฟล์ จะมีชุดกฎที่กำหนดว่าใครสามารถเข้าถึงไฟล์นั้นและอย่างไร กฎเหล่านี้เรียกว่าการอนุญาตไฟล์หรือโหมดไฟล์ ชื่อคำสั่ง chmod หมายถึง "โหมดการเปลี่ยนแปลง" และใช้เพื่อกำหนดวิธีการเข้าถึงไฟล์

ใน ปริทัศน์คำสั่ง chmod มีลักษณะดังนี้:

ชื่อไฟล์ตัวเลือกการอนุญาต chmod

ถ้า ตัวเลือกไม่ได้ระบุ chmod จะเปลี่ยนสิทธิ์ของไฟล์ที่ระบุ ชื่อไฟล์สำหรับการอนุญาตที่ระบุไว้ใน สิทธิ์.

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

สมมติว่าคุณเป็นเจ้าของไฟล์ชื่อ myfile และคุณต้องการตั้งค่าการอนุญาตเพื่อให้:

  1. ผู้ใช้ ( ยู ser) สามารถอ่านได้ ( อี๊ด) เขียน ( พิธีกรรม) และดำเนินการ ( x ecute) เขา;
  2. สมาชิกกลุ่ม ( กลุ่ม) สามารถอ่านได้ ( ead) และดำเนินการ ( x ecute) เขา;
  3. เช่นเดียวกับคนอื่นๆ ( โออื่น ๆ) สามารถอ่านได้เท่านั้น ( อี๊ด) เขา

คำสั่งนี้จะมีลักษณะดังนี้:

chmod u=rwx,g=rx,o=r ไฟล์ของฉัน

ตัวอย่างนี้ใช้สัญลักษณ์สิทธิ์อนุญาต ตัวอักษร u, g และ o ย่อมาจาก “ผู้ใช้” “กลุ่ม” และ “อื่นๆ” เครื่องหมายเท่ากับ (“=”) หมายถึง “ตั้งค่าการอนุญาตด้วยวิธีนี้” และตัวอักษร “r” “w” และ “x” หมายถึง “อ่าน” “เขียน” และ “ดำเนินการ” ตามลำดับ เครื่องหมายจุลภาคจะแยกคลาสสิทธิ์ที่แตกต่างกัน และไม่มีช่องว่างระหว่างคลาสเหล่านั้น

นี่คือคำสั่งที่เทียบเท่ากันโดยใช้เครื่องหมายอนุญาตฐานแปด:

chmod 754 myfile.php?

ในที่นี้ หมายเลข 7, 5 และ 4 แต่ละตัวแสดงถึงสิทธิ์สำหรับผู้ใช้ กลุ่ม และคนอื่นๆ ตามลำดับ แต่ละหลักคือการรวมกันของตัวเลข 4, 2, 1 และ 0:

  • 4 หมายถึง "อ่าน"
  • 2 หมายถึง "เขียน"
  • 1 หมายถึง "ดำเนินการ"
  • 0 หมายถึง "ไม่ได้รับอนุญาต"

ดังนั้น 7 คือการรวมกันของสิทธิ์ 4 + 2 + 1 (อ่าน เขียน และดำเนินการ) 5 คือ 4 + 0 + 1 (อ่าน ไม่เขียน และดำเนินการ) และ 4 คือ 4 + 0 + 0 (อ่าน ไม่ใช่ เขียนและไม่ดำเนินการ)

ไวยากรณ์ chmod

chmod ... MODE [, MODE] ... ไฟล์ ... chmod ... ไฟล์ OCTAL-MODE ... chmod ... --reference = ไฟล์ RFILE ...

ตัวเลือก chmod

-ค, --การเปลี่ยนแปลงคล้ายกับ --verbose แต่สร้างเอาต์พุตแบบละเอียดเมื่อทำการเปลี่ยนแปลงจริงเท่านั้น

-ฉ, --เงียบ, --เงียบโหมดเงียบ; ระงับข้อความแสดงข้อผิดพลาดส่วนใหญ่

-v, --รายละเอียดโหมดรายละเอียด; แสดงข้อความวินิจฉัยสำหรับไฟล์ที่ประมวลผลแต่ละไฟล์

--ไม่มีการเก็บรักษารากอย่าปฏิบัติต่อ "/" (ไดเร็กทอรีราก) ด้วยวิธีพิเศษใดๆ ซึ่งเป็นการตั้งค่าเริ่มต้น

--รักษารากอย่าทำงานซ้ำกับ "/"

--อ้างอิง=อาร์ไฟล์ตั้งค่าการอนุญาตให้ตรงกับไฟล์ RFILE โดยไม่สนใจ MODE ใด ๆ ที่ระบุ

-ร, --เรียกซ้ำเปลี่ยนไฟล์และไดเร็กทอรีแบบวนซ้ำ

--ช่วยแสดงข้อความช่วยเหลือและออก

--รุ่นพิมพ์ข้อมูลเวอร์ชันและออก

รายละเอียดทางเทคนิค

chmod เปลี่ยนโหมดไฟล์ของแต่ละ FILE ที่ระบุตาม MODE ซึ่งสามารถเป็นได้ทั้งการแสดงเชิงสัญลักษณ์ของการเปลี่ยนแปลงที่กำลังดำเนินการ หรือเลขฐานแปดที่แสดงถึงรูปแบบบิตสำหรับบิตของโหมดใหม่

รูปแบบโหมดสัญลักษณ์:

[[+-=]...]

โดยที่ perms เป็นศูนย์หรือมากกว่าตัวอักษรจากเซต r, w, x, X, s และ t หรือตัวอักษรหนึ่งตัวจากเซต u, g และ o คุณสามารถระบุโหมดอักขระได้หลายโหมด โดยคั่นด้วยเครื่องหมายจุลภาค

การรวมกันของตัวอักษร u, g, o และตัวควบคุมที่จะเปลี่ยนการเข้าถึงไฟล์ของผู้ใช้: ผู้ใช้ที่เป็นเจ้าของไฟล์ (u), ผู้ใช้อื่น ๆ ในกลุ่มของไฟล์ (g), ผู้ใช้อื่น ๆ ที่ไม่อยู่ในกลุ่มของไฟล์ (o) หรือผู้ใช้ทั้งหมด (ก) หากไม่ได้ให้สิ่งใดเลย เอฟเฟกต์จะเหมือนกับว่าได้รับ แต่บิตที่ตั้งค่าเป็น umask จะไม่ได้รับผลกระทบ

ตัวดำเนินการ (+) ทำให้บิตโหมดไฟล์ที่เลือกถูกเพิ่มให้กับบิตโหมดไฟล์ที่มีอยู่ของแต่ละไฟล์ "-" ทำให้ถูกลบ; และ "=" ทำให้เกิดการเพิ่มและทำให้บิตที่ไม่ได้กล่าวถึงถูกลบออก ยกเว้นว่าบิตไดเร็กทอรีที่ผู้ใช้กำหนดและ ID กลุ่มที่ไม่เปลี่ยนรูปจะไม่ได้รับผลกระทบ

ตัวอักษร r, w, x, X, s และ t เลือกบิตโหมดไฟล์สำหรับผู้ใช้ที่ได้รับผลกระทบ: อ่าน (r), เขียน (w), ดำเนินการ (x), ดำเนินการเฉพาะในกรณีที่ไฟล์เป็นไดเร็กทอรีหรือมีสิทธิ์อยู่แล้ว การดำเนินการสำหรับผู้ใช้บางราย (X) ตั้งค่า ID ผู้ใช้หรือกลุ่มในการดำเนินการ แฟล็กการลบแบบจำกัด หรือบิตคงที่ (t) สำหรับไดเร็กทอรี พารามิเตอร์รันไทม์ X และ X จะกำหนดสิทธิ์ในการดูเนื้อหาของไดเร็กทอรี

แทนที่จะระบุตัวอักษรเหล่านี้ตั้งแต่หนึ่งตัวขึ้นไป คุณสามารถระบุตัวอักษรตัวใดตัวหนึ่งได้ u, g หรือ o: สิทธิ์ที่มอบให้กับผู้ใช้ที่เป็นเจ้าของไฟล์ (u) สิทธิ์ที่มอบให้กับผู้ใช้รายอื่นที่เป็นสมาชิกของกลุ่มของไฟล์ (g ) และการอนุญาตที่มอบให้แก่ผู้ใช้ ซึ่งไม่อยู่ในหมวดหมู่ใดหมวดหมู่หนึ่งจากสองหมวดหมู่ก่อนหน้า (o)

โหมดตัวเลข - หนึ่งถึงสี่หลักฐานแปด (0-7) ได้มาจากการเพิ่มบิตที่มีค่า 4, 2 และ 1 ตัวเลขที่หายไปจะถือว่าเป็นศูนย์นำหน้า หลักแรกเลือก ID ผู้ใช้ที่ระบุ (4) และ ID กลุ่มที่ระบุ (2) และคุณลักษณะการลบหรือพินแบบจำกัด (1) หลักที่สองเลือกสิทธิ์การเข้าถึงสำหรับผู้ใช้ที่เป็นเจ้าของการดำเนินการอ่าน (4) เขียน (2) และดำเนินการ (1) ส่วนที่สามเลือกสิทธิ์การเข้าถึงสำหรับผู้ใช้รายอื่นในกลุ่มไฟล์ที่มีค่าเดียวกัน และอันดับที่สี่สำหรับผู้ใช้รายอื่นที่ไม่อยู่ในกลุ่มไฟล์โดยมีค่าเหมือนกัน

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

บิต Setuid และ Setgid

chmod จะล้างบิต set-group-ID ของไฟล์ปกติ หาก ID กลุ่มของไฟล์ไม่ตรงกับ ID กลุ่มที่มีผลของผู้ใช้หรือหนึ่งใน ID กลุ่มรองของผู้ใช้ เว้นแต่ผู้ใช้จะมีสิทธิ์ที่เหมาะสม ข้อจำกัดเพิ่มเติมอาจทำให้บิต set-user-ID และ set-group-ID ใน MODE หรือ RFILE ถูกละเว้น ลักษณะการทำงานนี้ขึ้นอยู่กับนโยบายและการทำงานของการเรียกระบบ chmod พื้นฐาน หากมีข้อสงสัย ให้ตรวจสอบพฤติกรรมของระบบ

chmod จะเก็บรักษาบิต set-user-ID และ set-group-ID ของไดเร็กทอรี เว้นแต่คุณจะระบุเป็นอย่างอื่น คุณสามารถตั้งค่าหรือล้างบิตโดยใช้โหมดสัญลักษณ์ เช่น u+s และ g-s และคุณสามารถตั้งค่า (แต่ไม่ชัดเจน) บิตโดยใช้โหมดตัวเลข

แฟล็กการลบแบบจำกัด (หรือ "Sticky Bit")

แฟล็กการลบแบบจำกัดหรือบิตติดหนึบเป็นบิตเดียวที่การตีความขึ้นอยู่กับประเภทของไฟล์ วิธีนี้จะป้องกันไม่ให้ผู้ใช้ที่ไม่ได้เป็นเจ้าของไฟล์หรือไดเร็กทอรีลบหรือเปลี่ยนชื่อไฟล์ในไดเร็กทอรี สิ่งนี้เรียกว่าแฟล็กการลบไดเร็กทอรีแบบจำกัด และโดยทั่วไปจะพบได้ในไดเร็กทอรีที่สามารถเขียนได้ทั่วโลก เช่น /tmp สำหรับไฟล์ปกติบนระบบเก่าบางระบบ บิตนี้จะคงไว้ ภาพข้อความโปรแกรมบนอุปกรณ์สลับจึงโหลดเร็วขึ้นเมื่อเริ่มต้น นี่เรียกว่าเหนียวหน่อย

วิธีดูการอนุญาตไฟล์

วิธีที่ง่ายและรวดเร็วในการแสดงรายการสิทธิ์ของไฟล์คือการใช้ตัวเลือก longlist (-l) ของคำสั่ง ls ตัวอย่างเช่น หากต้องการดูสิทธิ์สำหรับ file.txt คุณสามารถใช้คำสั่ง:

ไฟล์ Ls -l.txt

ซึ่งจะแสดงผลลัพธ์ที่มีลักษณะดังนี้:

ตัวอย่างการใช้ chmod

ไฟล์ chmod 644.htm

ตั้งค่าการอนุญาตสำหรับไฟล์ file.htm เป็น “เจ้าของสามารถอ่านและเขียนได้; กลุ่มสามารถอ่านได้เท่านั้น คนอื่นสามารถอ่านได้เท่านั้น”

Chmod -R 755 มายไฟล์

ซ้ำ (-R) เปลี่ยนการอนุญาตสำหรับไดเร็กทอรี myfiles และโฟลเดอร์และไฟล์ทั้งหมดเป็นโหมด 755 ผู้ใช้สามารถอ่าน เขียน และดำเนินการได้ สมาชิกกลุ่มและผู้ใช้รายอื่นสามารถอ่านและดำเนินการได้ แต่ไม่สามารถเขียนได้

Chmod u=rw example.jpg

เปลี่ยนการอนุญาตสำหรับเจ้าของ example.jpg เพื่อให้เจ้าของสามารถอ่านและเขียนไฟล์ได้ ไม่เปลี่ยนแปลงการอนุญาตสำหรับกลุ่มหรือผู้อื่น

Chmod u+s comphope.txt

ตั้งค่าบิต "Set-User-ID" ของไฟล์ comphope.txt เพื่อให้ใครก็ตามที่พยายามเข้าถึงไฟล์นี้จะเข้าถึงได้เสมือนเป็นเจ้าของไฟล์

Chmod คุณ comphope.txt

ตรงกันข้ามกับคำสั่งข้างต้น ล้างบิต SUID

ไฟล์ Chmod 755.cgi

ตั้งค่าการอนุญาตสำหรับ file.cgi เป็น "อ่าน เขียน และดำเนินการโดยเจ้าของ" และ "อ่านและดำเนินการโดยกลุ่มและคนอื่นๆ"

ไฟล์ Chmod 666.txt

ตั้งค่าการอนุญาตของ file.txt เป็น "อ่าน/เขียนโดยทั้งหมด"

Chmod a=rw ไฟล์ txt

ดำเนินการสิ่งเดียวกันกับคำสั่งข้างต้นโดยใช้สัญกรณ์สัญลักษณ์

คำสั่งที่เกี่ยวข้อง

ชวน- เปลี่ยนเจ้าของไฟล์หรือไดเร็กทอรี
getfacl- แสดงรายการควบคุมการเข้าถึงไฟล์
LS- รายการเนื้อหาของไดเร็กทอรีหรือไดเร็กทอรี