สิทธิ์ลิงก์สัญลักษณ์ไม่เปลี่ยนด้วย chmod


12

ฉันมีสิทธิ์เข้าถึงเครื่อง Linux ระยะไกลซึ่งทุกครั้งที่ฉันสร้างลิงค์สัญลักษณ์จะถูกสร้างขึ้นตามค่าเริ่มต้นด้วยสิทธิ์ต่อไปนี้: lrwxrwxrwx

หากฉันพยายามเปลี่ยนการอนุญาตของลิงก์สัญลักษณ์ (เช่นไม่ใช่พา ธ ที่ชี้ไป) ใช้ตัวอย่างเช่น:

chmod g-w my_symbolic_link

chmodทำงานอย่างถูกต้อง (ไม่มีข้อความแสดงข้อผิดพลาด) แต่เมื่อฉันตรวจสอบการอนุญาตอีกครั้งพวกเขาจะยังคงเหมือนเดิม ( lrwxrwxrwx)

ฉันกำลังรอฟังจากผู้ดูแลระบบของเครื่อง แต่ฉันสงสัยว่านี่เป็นพฤติกรรมปกติหรือไม่หรือเป็นสิ่งที่เฉพาะเจาะจงกับกล่อง

คำตอบ:


16

มันเป็นพฤติกรรมปกติ สิ่งที่เกิดขึ้นอาจแตกต่างกันไปขึ้นอยู่กับระบบปฏิบัติการ (อย่างน้อยที่สุดก็ใช้ Solaris เพื่อเปลี่ยนการอนุญาตลิงก์); แต่เนื่องจาก symlink ไม่ใช่ไฟล์ปกติสิทธิ์จึงไม่ถูกนำไปใช้เพื่อสิ่งใด (สิทธิ์ของไฟล์เป็นส่วนหนึ่งของ inode ของไฟล์ดังนั้น symlink จะไม่ส่งผลกระทบต่อไฟล์)


ฉันเห็นขอบคุณ ฉันแค่ต้องการป้องกันไม่ให้ใครลบลิงก์สัญลักษณ์ จากสิ่งที่ฉันเข้าใจแล้วฉันไม่สามารถเปลี่ยนการอนุญาตของลิงก์นี้โดยไม่ได้รับความช่วยเหลือจากผู้ดูแลระบบใช่ไหม
Amelio Vazquez-Reina

4
ไม่ได้ด้วยความช่วยเหลือของผู้ดูแลระบบ การลบไฟล์ขึ้นอยู่กับการอนุญาตของไดเรกทอรีที่มีอยู่ไม่ใช่ในไฟล์ ( rmโดยเฉพาะการตรวจสอบไฟล์เป็นแบบอ่านอย่างเดียวเว้นแต่ว่าคุณผ่าน-fเพราะมักจะไม่ต้องการลบไฟล์แบบอ่านอย่างเดียว แต่unlink()ไม่สนใจลองใช้มันจาก Perl หรือ Python ในบางครั้ง)
geekosaur
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.