สิทธิ์ใดที่อนุญาตให้สมาชิกกลุ่มลบไฟล์ในไดเรกทอรีย่อย


2

สมมติว่าผมมีสองผู้ใช้ในระบบ Debian GNU / Linux: และme ทั้งสองเป็นสมาชิกของกลุ่มotheruser shared-mediaฉันสามารถสร้างไดเรกทอรีที่สามารถเขียนได้โดย:

$ sudo mkdir /srv/media/test-parent
$ sudo chown root:shared-media /srv/media/test-parent
$ sudo chmod g+w /srv/media/test-parent
$ sudo chmod g+s /srv/media/test-parent
$ ls -dlh /srv/media/test-parent
drwxrwsr-x 2 root shared-media 4.0K Apr 28 19:35 /srv/media/test-parent

ตอนนี้otheruserฉันสร้างไดเรกทอรีและไฟล์ภายใน:

$ sudo -u otheruser mkdir /srv/media/test-parent/zztest
$ sudo -u otheruser touch /srv/media/test-parent/zztest/one

น่าเสียดายที่สมาชิกคนอื่น ๆ ในกลุ่มไม่สามารถลบไฟล์ใหม่นี้ได้ (ถือว่าผู้ใช้ปัจจุบันคือme):

$ ll /srv/media/test-parent/zztest/one 
-rw-r--r-- 1 otheruser shared-media 0 Apr 28 19:36 /srv/media/test-parent/zztest/one
$ rm /srv/media/test-parent/zztest/one 
rm: remove write-protected regular empty file ‘/srv/media/test-parent/zztest/one’? y
rm: cannot remove ‘/srv/media/test-parent/zztest/one’: Permission denied

ฉันจะตั้งค่าการอนุญาตอย่างไรเพื่อให้สามารถotheruserสร้างไฟล์ที่สามารถเขียนและลบได้โดยสมาชิกกลุ่มคนอื่น ๆ เท่านั้น?

คำตอบ:


2

ไฟล์เองไม่สำคัญ คุณต้องการสิทธิ์การเขียนในไดเรกทอรีหลักเท่านั้น เพื่อให้แน่ใจว่ามีการเพิ่มอยู่เสมอตั้งค่า 'เริ่มต้น' ACL ในไดเรกทอรีฐาน:

setfacl -m default:group::rwx /srv/media/test-parent

ชุดนี้เป็น "ค่าเริ่มต้น" (สืบทอดเท่านั้น) ACL group::rwx(ชวเลขg::rwx) ซึ่งใช้กับกลุ่มที่เป็นเจ้าของ (เช่นกลุ่มที่ตั้งค่าผ่าน chown / chgrp)

แต่คุณมักจะต้องการตั้งค่า "ปกติ" ACL ที่เหมือนกันในเวลาเดียวกัน:

setfacl -m g::rwx,d:g::rwx /srv/media/test-parent

คุณสามารถทำให้สิ่งนี้ง่ายขึ้นโดยให้สิทธิ์การเข้าถึงกลุ่มเฉพาะโดยตรง:

setfacl -m g:users:rwx,d:g:users:rwx /srv/blah

สิ่งนี้ทำให้บิต 'setgid' และchgrpไม่จำเป็น


ดี! ฉันไม่รู้ว่าsetfaclมีอยู่จริง ฉันสันนิษฐานใหม่+ในตอนท้ายของการอนุญาตไดเรกทอรี ( drwxrwsr-x+) อยู่ที่นั่นเพื่อระบุว่า ACL ที่แตกต่างกันมีการตั้งค่าสำหรับไดเรกทอรีนี้
detly

1
ใช่. นอกจากนี้เมื่อตั้งค่า ACL คอลัมน์ 'กลุ่ม' จะแสดงผลรวมของรายการ ACL ปกติทั้งหมด (ยกเว้นรายการ 'ค่าเริ่มต้น') สิทธิ์ที่แท้จริงจะปรากฏให้เห็นผ่านgetfaclเท่านั้น ในทำนองเดียวกันchmod g-wจะ "ปกปิด" สิทธิ์การเขียนสำหรับรายการ ACL ทั้งหมดในครั้งเดียว
grawity
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.