ดูเหมือนว่าคุณกำลังอธิบายถึงฟังก์ชั่นsetgid บิตที่เมื่อไดเรกทอรีที่ตั้งไว้มันจะบังคับให้ไฟล์ใหม่ใด ๆ ที่สร้างขึ้นภายในนั้นจะมีกลุ่มของพวกเขาตั้งกลุ่มที่ตั้งอยู่ในไดเรกทอรีหลัก
ตัวอย่าง
$ whoami
saml
$ groups
saml wheel wireshark
ตั้งค่าไดเรกทอรีด้วย perms + ownerhips
$ sudo mkdir --mode=u+rwx,g+rs,g-w,o-rwx somedir
$ sudo chown saml.apache somedir
$ ll -d somedir/
drwxr-s---. 2 saml apache 4096 Feb 17 20:10 somedir/
แตะไฟล์ที่เป็น saml ใน dir นี้
$ whoami
saml
$ touch somedir/afile
$ ll somedir/afile
-rw-rw-r--. 1 saml apache 0 Feb 17 20:11 somedir/afile
สิ่งนี้จะให้เสียงประมาณเท่าที่คุณต้องการ หากคุณต้องการสิ่งที่คุณอธิบายอย่างแท้จริงจริงๆฉันคิดว่าคุณจะต้องใช้ฟังก์ชันการควบคุมการเข้าถึงเพื่อรับ (ACLs)
หากคุณต้องการควบคุมสิทธิ์ของไฟล์ที่สร้างขึ้นภายใต้ไดเรกทอรีให้มากขึ้นอีกเล็กน้อยsomedir
คุณสามารถเพิ่มกฎ ACL ต่อไปนี้เพื่อตั้งค่าการอนุญาตเริ่มต้นได้
ก่อน
$ ll -d somedir
drwxr-s---. 2 saml apache 4096 Feb 17 20:46 somedir
กำหนดสิทธิ์
$ sudo setfacl -Rdm g:apache:rx somedir
$ ll -d somedir/
drwxr-s---+ 2 saml apache 4096 Feb 17 20:46 somedir/
โปรดสังเกตว่า+
ในตอนท้ายนั่นหมายความว่าไดเรกทอรีนี้มี ACL ที่ใช้กับมัน
$ getfacl somedir
# file: somedir
# owner: saml
# group: apache
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:apache:r-x
default:mask::r-x
default:other::---
หลังจาก
$ touch somedir/afile
$ ll somedir/afile
-rw-r-----+ 1 saml apache 0 Feb 17 21:27 somedir/afile
$
$ getfacl somedir/afile
# file: somedir/afile
# owner: saml
# group: apache
user::rw-
group::r-x #effective:r--
group:apache:r-x #effective:r--
mask::r--
other::---
แจ้งให้ทราบด้วยการอนุญาตเริ่มต้น ( setfacl -Rdm
) ตั้งค่าเพื่อให้สิทธิ์ที่จะ ( r-x
) โดยค่าเริ่มต้น ( g:apache:rx
) สิ่งนี้บังคับให้ไฟล์ใหม่ใด ๆ มีการr
เปิดใช้งานบิตของพวกเขาเท่านั้น