ฉันจะตั้งค่าไดเรกทอรีที่เขียนได้เป็นกลุ่มได้อย่างไร


16
$ whoami
meder
$ cd /var/www
$ sudo mkdir html
$ sudo groupadd web
$ sudo usermod -a -G web meder
$ sudo usermod -a -G web medertest
$ sudo chown meder:web html
$ sudo chmod -R g+rwx html

ปัญหาคือเมื่อใดก็ตามที่ฉันสร้างไฟล์ใหม่/var/www/htmlแม้จะตั้งกลุ่มไว้webแต่ผู้ใช้ดั้งเดิมสามารถเขียนได้เท่านั้น

ฉันได้รับคำแนะนำในการตั้งค่าumaskให้เป็น002เพราะค่าเริ่มต้นคือสิ่งที่ทำให้เกิดปัญหา แต่ผมจะต้องทำเช่นนี้สำหรับทุกผู้ใช้ในกลุ่มนั้นและเท่าที่ผมรู้ว่ามันจะน่าเบื่อมีทั้งหมดของพวกเขาปรับเปลี่ยนจะมี~/.bashrc umask 002แม้ว่าฉันจะสามารถทำได้ด้วยตัวเองด้วยคำสั่งเชลล์สำหรับผู้ใช้ทั้งหมด แต่ก็ยังดูน่าเบื่อเกินไป

ทุกคนสามารถให้คำแนะนำเกี่ยวกับการมีไดเรกทอรีที่เขียนได้เป็นกลุ่มหรือไม่?


2
คุณลองออกจากระบบแล้วลงชื่ออีกครั้งด้วย meder ผู้ใช้หรือไม่ ข้อมูลกลุ่มไม่ได้รับการอัพเดตในเซสชันปัจจุบัน
marco

@marco - ฉันทำsu medertestและsu mederชอบพันครั้ง นั่นมีคุณสมบัติเป็นออกจากระบบหรือไม่?
meder omuraliev

@marco ขอบคุณไม่ทราบว่าข้อมูลกลุ่มไม่ได้รับการปรับปรุงในเซสชั่นปัจจุบัน ... bummer
gabeio

คำตอบ:


30

ขั้นแรกให้เปิดใช้งานบิต SGID ในไดเรกทอรีของคุณ:

sudo chmod g+s html

สิ่งนี้จะทำให้ไฟล์ใหม่ถูกสร้างขึ้นภายในไดเรกทอรีนั้นสืบทอดความเป็นเจ้าของกลุ่มของผู้ปกครอง

ไม่มีการสืบทอดระดับสิทธิ์ในโมเดลการอนุญาต POSIX อย่างไรก็ตามสามารถทำได้ด้วยAccess Control Listsโดยไม่ต้องกังวลเกี่ยวกับการตั้งค่า umask:

sudo setfacl -d -m group:web:rwx html

มันเป็นคนเกียจคร้านจริง ๆ ที่ umask ไม่สามารถกำหนดบนพื้นฐานต่อไดเรกทอรี


สิ่งที่อยู่g+sในตัวเลข?
Jürgen Paul

1
@WearetheWorld ย่อหน้า chmod 2XXX file2:
mizo

1
ฉันได้ตามล่าหาคำตอบนี้ตลอดไปและฉันเพิ่งได้รับการอ้างถึงผ่านการตอบสนอง Twitter ขอบคุณ @mizo!
Glyph

0

คุณต้องตั้งบิต setgid ในไดเรกทอรี

chmod g+s html

ฉันสามารถรวม chmod นี้กับg+rwxหนึ่ง?
meder omuraliev


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