ใน Linux สิทธิ์“ เขียน” เทียบเท่ากับ“ เรียกใช้” สำหรับไดเรกทอรีหรือไม่


17

การอนุญาตให้ใช้งานนั้นเหมาะสมสำหรับไฟล์ (ซึ่งรวมถึงสคริปต์ ฯลฯ ) แต่เมื่อมันมาถึงไดเรกทอรีการwrite (w)อนุญาตทำงานในลักษณะเดียวกันexecute (x)ใช่มั้ย

ซึ่งหมายความว่าถ้าเราให้สิทธิ์เขียนไปยังไดเรกทอรีเราปกติจะตรวจสอบ "x" (สำหรับรัน) สำหรับไดเรกทอรีนั้นด้วยใช่ไหม


2
คำถามของคุณตอนนี้ไม่สามารถเข้าใจได้ ยังไม่ชัดเจนว่าคุณกำลังพูดถึงสิทธิ์ของไฟล์ไว้ที่ใดและคุณกำลังพูดถึงสิทธิ์ในไดเรกทอรีที่มีอยู่
Gilles 'หยุดความชั่วร้าย'

1
หากคุณมีคำถามใหม่คุณสามารถโพสต์แยกต่างหากได้หรือไม่?
Michael Mrozek

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

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

การแก้ไขคำถามนี้ของคุณทำให้เกิดความสับสนจริง ๆ ว่าสิ่งที่ถูกถามและดูเหมือนจะไม่เพิ่มมูลค่าใด ๆ สำหรับผู้เข้าชมในอนาคต ฉันเปลี่ยนกลับไปใช้แบบฟอร์มคำถามดั้งเดิมง่ายๆที่ @Gilles ตอบ หากคุณมีปัญหาใหม่ที่คุณสามารถถามคำถามอื่น โปรดพยายามให้คำถามแต่ละข้อเน้นไปที่ปัญหาเดียว
Caleb

คำตอบ:


50

สิทธิ์ดำเนินการในไดเรกทอรีอนุญาตให้เข้าถึงไฟล์ภายในไดเรกทอรี สิทธิ์ในการอ่านอนุญาตให้แจกแจงรายการไดเรกทอรี สิทธิ์การเขียนอนุญาตให้สร้างและลบรายการในนั้น

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

ดังนั้นในทางปฏิบัติสิทธิ์ที่มีประโยชน์ในไดเรกทอรีคือ:

  • ---: ไม่มีการเข้าถึง
  • --x: สามารถเข้าถึงไฟล์ที่มีชื่อเป็นที่รู้จัก (บางครั้งก็มีประโยชน์)
  • r-x: การเข้าถึงแบบอ่านอย่างเดียวปกติ
  • rwx: การเข้าถึงเพื่ออ่านและเขียนปกติ

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


@Gilles ถูกต้อง! การทำวิจัยเกี่ยวกับเรื่องนี้สำหรับ Linux เผย: 1) เมื่อไดเรกทอรีไม่ได้รับอนุญาต 'x' สำหรับผู้ใช้มันเป็นการเรียกระบบ stat หรือ lstat ที่ล้มเหลว ส่งผลให้ไม่ได้รับข้อมูลเมตาของรายการไดเรกทอรีแม้ว่าจะได้รับรายการไดเรกทอรี (ชื่อ inode) เป็นไปได้เมื่อผู้ใช้มีสิทธิ์ 'r' ในไดเรกทอรี 2) ดู man 7 path_resolution บน Linux สำหรับข้อมูลเพิ่มเติม
Kedar Mhaswade

2
w-xยังสามารถใช้งานได้ ตัวอย่างเช่นเคยเป็นเรื่องธรรมดาสำหรับไซต์ FTP สาธารณะที่จะมีuploadหรือincomingโฟลเดอร์ที่เขียนได้แบบสาธารณะ แต่อ่านได้โดยผู้ดูแลเซิร์ฟเวอร์เท่านั้น
jmbpiano

สิ่งใดที่rw-ทำr--ไม่ได้สำหรับไดเรกทอรี คำตอบนี้กล่าวถึงความสามารถในการปรับเปลี่ยนเวลาการเปลี่ยนแปลง แต่ในระบบ Linux ZFS r--ของฉันที่ไม่เป็นความจริงผมก็สามารถที่จะเปลี่ยนแปลงแก้ไขเวลาแม้ในขณะที่ไดเรกทอรีของฉันเป็นเพียง
CMCDragonkai

@CMCDragonkai คุณถูกต้องการเปลี่ยนเมตาดาต้าขึ้นอยู่กับความเป็นเจ้าของมันไม่เกี่ยวข้องกับการอนุญาต ฉันไม่คิดว่าคุณสามารถทำสิ่งใดกับrw-ไดเรกทอรีอื่นนอกเหนือจากรายการ (และย้าย / ลบมันถ้าคุณเป็นเจ้าของแม่ของมันซึ่งไม่ต้องการสิทธิ์ใด ๆ ในไดเรกทอรี)
Gilles 'หยุดความชั่วร้าย'

@Gilles: ถูกต้อง กับrw-ใน dir ที่ฉันไม่สามารถสร้างไฟล์ใหม่หรือที่มีอยู่การเปลี่ยนแปลงแม้ว่าฉันมีrw-ที่ไฟล์ฉันพยายามที่จะเปลี่ยนแปลง ฉันไม่สามารถtouchส่งไฟล์ได้ ฉันใช้ Arch Linux 4.14.13
Matthias Braun
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.