หาก suid bit ไม่มีผลกระทบกับไดเร็กทอรีและ sticky bit ไม่มีผลกับไฟล์ทำไมถึงไม่รวมกันเป็นหนึ่งบิต


18

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


3
Sticky bit ทำบางอย่างกับไฟล์ธรรมดา ดูen.wikipedia.org/wiki/Sticky_bitสำหรับจำนวนวิธีที่ใช้
โจชัว

@ โจชัวน่าสนใจและเป็นจุดที่ดีที่ไม่ใช่ Linux * ระวังพฤติกรรมแตกต่างกันไป แต่ฉันมี Linux ในใจสำหรับคำถามนี้ ฉันสงสัยว่าถ้ามีคนบนเคอร์เนล Linux ที่มี BSD amd และ ls ยังคงขึ้นอยู่กับบิตไฟล์เหนียว? และฉันคิดว่าโปรแกรมผู้ใช้ต่าง ๆสามารถตรวจสอบ / ดำเนินการได้แม้ว่าฉันจะไม่รู้จักโปรแกรมทั่วไปก็ตาม
แฮร์รี่

คำตอบ:


26

ด้วยเหตุผลทางประวัติศาสตร์ Sticky bit นั้นถูกใช้เพื่อจุดประสงค์ที่แตกต่างไปจากเดิมอย่างสิ้นเชิง: ถ้ามันถูกตั้งค่าบนไฟล์เรียกทำงานมันจะบอกให้ระบบปฏิบัติการรักษาส่วนของข้อความในการแลกเปลี่ยน ดังนั้นชื่อ "Sticky Bit"


ขอบคุณ แต่นั่นขัดขวางพวกเขาจากการยังคงเป็น "หนึ่งบิต" ภายในหรือไม่ หรือการประหยัดเพียงหนึ่งบิตนั้นไม่สำคัญพอสำหรับระดับต่อไฟล์
แฮร์รี่

6
ไฟล์ที่ปฏิบัติการได้อาจมีทั้ง suid และ sticky
Johan Myréen

ใช่ดังนั้นคำถามเดิม บางทีประโยคที่ดีกว่านี้ทำไมชื่อ (หรือการใช้งานในอดีต) ของบิตเหนียวมีอะไรเกี่ยวข้องกับการรวมเข้ากับบิต suid วันนี้ ไม่สามารถรวมฟังก์ชั่นของบิตทั้งสองเป็นบิต "เหนียว / suid" ซึ่งทำหน้าที่เป็น suid เมื่อตั้งค่าในไฟล์ แต่เหนียวเมื่อตั้งค่าในไดเรกทอรี?
แฮร์รี่

17
คุณจะทำลายความเข้ากันได้แบบย้อนหลังถ้าคุณเลื่อนบิตไปมา chmod 4755 fileตั้ง suid bit และchmod 1755 dirตั้ง bit sticky เราไม่ต้องการทำลายสคริปต์เก่าเพียงเพื่อประโยชน์ในการบันทึกหนึ่งบิตต่อไฟล์ใช่ไหม? แน่นอนว่าภายในระบบไฟล์นั้นมีอิสระที่จะใช้การปรับให้เหมาะสมของคุณได้ตราบใดที่อินเตอร์เฟสภายนอกยังคงเหมือนเดิม
Johan Myréen

6
@Johan Myréen: และแน่นอนว่าคุณจะไม่บันทึกบิตนั้นจริง ๆ มันจะกลายเป็นเพียงบิตที่ไม่ได้ใช้ในฟิลด์การอนุญาตไบต์ / คำ
jamesqf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.