เหตุใดฉันจึงไม่สามารถลบไฟล์ที่ฉันได้รับอนุญาตให้เขียนเป็นกลุ่มได้


26

ฉันมีไฟล์ที่มีสิทธิ์ต่อไปนี้:

root:dataและchmodตั้งค่าเป็น 775

ผู้ใช้ปกติของฉันเรียกเขาว่า boby อยู่ในdataกลุ่ม

ทำไมฉันไม่สามารถลบไฟล์ด้วย boby ผู้ใช้?

 rwxrwxr-x 18 ข้อมูลรูท 4096 2011-12-30 22:02 การจัดเก็บ
 ผู้ใช้ของฉันอยู่ในข้อมูลกลุ่ม แต่ไม่สามารถเขียนลงในที่เก็บข้อมูลได้

คำตอบ:


32

เนื่องจากการลบไฟล์คุณไม่เพียง แต่แก้ไขไฟล์ แต่ยังแก้ไขไดเร็กทอรีด้วย

ดังนั้นหากไฟล์ของคุณคือ:

rwxrwxr-x

คุณจะสามารถทำ:

cp /dev/null <filename>

แต่ถ้าสิทธิ์ไดเรกทอรีของคุณคือ:

rwxr-xr-x  root  data  <directory name>

จากนั้นระบบจะป้องกันไม่ให้คุณลบไฟล์


ฉันมี drwxrwxr-x ในไดเรกทอรีฉันคิดว่ามันมีบางอย่างที่เกี่ยวข้องกับ d อยู่ข้างหน้า
danidacar

2
@ user56301 d เพียงแค่ระบุว่าไฟล์นี้เป็นไดเรกทอรี กรรมสิทธิ์ในไดเรกทอรีคืออะไร
Karlson

ข้อมูลราก drwxrwxr-x 18
danidacar

ลองใช้งานในฐานะผู้ใช้bobyดังต่อไปนี้:cd <directory> ; touch test_file ; rm test_file
Karlson

@ user56301 คุณสามารถสร้างไฟล์ในไดเรกทอรีนั้นได้หรือไม่? หากคุณไม่สามารถทำได้คุณจะไม่สามารถลบไฟล์ได้อย่างแน่นอน
Rich Homolka

12

การลบไฟล์จะขึ้นอยู่กับไดเรกทอรีของไฟล์ไม่ใช่ไฟล์ต่อไฟล์ (*)

คุณมีสิทธิ์เขียนในไดเรกทอรีที่มีไฟล์หรือไม่

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


ดูได้ที่นี่ด้วย: superuser.com/questions/784952/…ที่กล่าวถึงสิ่งเดียวกัน
Meetai.com

1

หากไดเรกทอรีที่มีอยู่ไม่อนุญาตให้ผู้ใช้bobyหรือdataกลุ่มเขียนไปมันจะอธิบายพฤติกรรมนี้


2
ดังนั้นเส้นทางทั้งหมดต้องได้รับอนุญาตจากกลุ่ม? มันทำงานได้อย่างนั้น
danidacar

1
@user: ไม่ใช่เส้นทางทั้งหมด - เพียงไดเรกทอรีหลักของไฟล์ทันที คุณกำลังแก้ไขเนื้อหาของไดเรกทอรีเท่านั้น สูงกว่าพ่อแม่ไม่ได้เรื่องที่ทุกคน
grawity

ฉันอัปเดตคำตอบ
danidacar

1
สิ่งนี้ไม่เป็นความจริงอย่างแน่นอน คุณจะต้องเขียน perms ในไดเรกทอรีที่มี perms สามารถเป็นของผู้ใช้กลุ่มหรืออื่น ๆ ก็ไม่จำเป็นต้องเป็นกลุ่ม perms ที่ช่วยให้คุณ
Rich Homolka

@ ริช: AFAIK จะมีการตรวจสอบเพียงชุดเดียวเท่านั้น หากคุณเป็นเจ้าของระบบจะตรวจสอบ 'เจ้าของ' perms ไม่ใช่ 'กลุ่ม' หรือ 'อื่น ๆ ' หากคุณอยู่ในกลุ่มระบบจะไม่ตรวจสอบสิทธิ์ของผู้อื่น ( touch foo; chmod 6 foo; ls -l foo; cat foo)
grawity

1

ฉันลองสิ่งเดียวกันและพบปัญหาเดียวกัน

การเริ่มต้นเซสชันเทอร์มินัลใหม่เป็นปัญหา สามารถทำได้โดย:

  1. ออกจากระบบและกลับเข้าสู่ระบบ
  2. ไปหนึ่งใน 6 ttys (Ctrl + Alt + F1-6) (หมายเหตุ: Ctrl + Alt + F7 เป็นเซสชัน GUI ของคุณ)
  3. ใช้เพื่อเริ่มเซสชันใหม่สำหรับผู้ใช้su bobyboby

ไชโย!


เขากล่าวว่าเขาเข้าสู่ระบบแล้วในฐานะ boby
Canadian Luke ติดตั้งใหม่ MONICA

เขาต้องการเข้าสู่ระบบอีกครั้งเนื่องจากboby- เซสชันเก่าดูเหมือนจะเก่าและไม่สะท้อนการเปลี่ยนแปลงการเชื่อมโยงกลุ่ม
นี่คือหมาป่า

1

ฉันเดิมพันไฟล์ที่คุณพยายามลบอยู่ใน / tmp

ดูLinux - สมาชิกกลุ่มไม่สามารถลบไฟล์ที่มีสิทธิ์ rw

/ tmp มักจะมีการตั้งค่าโหมด "เหนียว" aka "การลบ จำกัด " (o + t) ด้วยการตั้งค่าโหมดนี้เฉพาะเจ้าของไฟล์เท่านั้นที่สามารถย้ายหรือลบไฟล์ในไดเรกทอรีนั้นโดยไม่คำนึงถึงสิทธิ์ใด ๆ

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