ฉันไม่สามารถลบไฟล์ที่ฉันมีสิทธิ์เขียนในฐานะสมาชิกกลุ่ม


12
$ touch testfile
$ chmod g+w testfile
$ sudo adduser user2 user1
$ stat -c'%a %A' testfile
664 -rw-rw-r--
$ su user2
Password: 
$ groups
user2 user1
$ rm testfile 
rm: cannot remove `testfile': Permission denied

อะไรหายไป?

คำตอบ:


22

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

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


ฉันขอ775 drwxrwxr-xไดเรกทอรี
tshepang

1
ความเป็นเจ้าของกลุ่มของไดเรกทอรีคืออะไร? โปรดจำไว้ว่า 7 วินาทีที่คุณพูดถึงคือสิทธิ์ที่กลุ่มไดเรกทอรีมีไม่ใช่กลุ่มผู้ใช้
jsbillings

1
ls -ld /path/to/directoryหรือls -ld .ถ้าคุณเคยไปที่ไดเรกทอรีนั้นแล้ว
jsbillings

1
ไม่ว่าจะด้วยเหตุผลใดก็ตาม stat ไม่สามารถค้นหา ID กลุ่ม 1002 stat ได้ค้นหา ID กลุ่มใน / etc / group, NIS, LDAP และอื่น ๆ และได้รับข้อผิดพลาดนั่นคือสาเหตุที่คุณเห็น UNKNOWN ฉันลองใช้getent group 1002เพื่อดูว่าข้อผิดพลาด verbose เพิ่มเติมหรือไม่
jsbillings

1
จริงๆแล้วฉันไม่พบว่าพฤติกรรมนี้สับสนเลย มันเหมือนกับการทำงานของไดเรกทอรี "real-life" จริงซึ่งเป็นสาเหตุที่เรียกว่า "directory" และไม่ใช่ตัวอย่างเช่น "folder" ซึ่งจะทำงานแตกต่างกันมาก ถ้าฉันต้องการลบใครบางคนออกจากสมุดโทรศัพท์ของฉันฉันจะไม่ไปที่บ้านของเธอและฆ่าเธอฉันก็แค่เอาปากกาและขีดฆ่าเบอร์ของเธอ IOW: ฉันต้องการสิทธิ์ในการเขียนในไดเรกทอรีและไม่สามารถเข้าถึงเธอได้ Windows มีโฟลเดอร์, Unix มีไดเรกทอรีและทั้งสองอย่างนั้นมีลักษณะการใช้งานเหมือนกับของจริง ความสับสนจะเกิดขึ้นได้ก็ต่อเมื่อคุณรวมมันเข้าด้วยกัน
Jörg W Mittag

0

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.