การแก้ไขสมาชิกกลุ่มเป็นไฟล์ * อัตโนมัติ * เปลี่ยนความเป็นเจ้าของกลุ่มและสิทธิ์ต่างๆ


1

ฉันมีไดเรกทอรีที่ฉันพยายามตั้งค่าเช่นที่สมาชิกของกลุ่มทั้งหมดมีสิทธิ์ rwx นี่คือส่วนย่อยของไดเรกทอรีและสิทธิ์:

-rwxr-xr-x  1 myusrnm grpnm 21638 2015-04-22 14:14 correct
-rwxrwxr--  1 myusrnm grpnm 14403 2015-04-22 14:14 correct.c

ตอนนี้ฉันเปลี่ยนเป็นหนึ่งในผู้ใช้ในกลุ่มยืนยันว่าเขาอยู่ในนั้น:

myusrnm@server:~/grpdir$ sudo su hisusrnm
hisusrnm@server:/grpdir$ whoami
hisusrnm
hisusrnm@server:/grpdir$ groups
hisusrnm sshusers grpnm

และแก้ไขให้ถูกต้อง ตอนนี้ในเทอร์มินัลอื่นฉันตรวจสอบไดเรกทอรีและค้นหา:

-rwxr-xr-x  1 myusrnm grpnm   21638 2015-04-22 14:14 correct
-rwxrwxr--  1 hisusrnm hisusrnm 14368 2015-04-22 14:23 correct.c

ฉันเพิ่งรู้ว่าสิ่งเดียวกันเกิดขึ้นเมื่อฉันแก้ไขไฟล์; กลุ่มของมันเปลี่ยนไปโดยอัตโนมัติmyusrnmและสิทธิ์ของมันเปลี่ยนเป็น 774 โดยอัตโนมัติทำไมสิ่งนี้ถึงเกิดขึ้น ฉันจะให้สมาชิกกลุ่มแก้ไขไฟล์โดยไม่เปลี่ยนกลุ่มความเป็นเจ้าของและการอนุญาตได้อย่างไร นี่เป็นพฤติกรรมเริ่มต้นของ Linux หรือไม่ หรือระบบของฉันทำงานพิเศษเป็นพิเศษหรือไม่

คำตอบ:


1

ใช้SetGIDในโฟลเดอร์หลัก มันจะทำให้เจ้าของกลุ่มยังคงอยู่ที่โฟลเดอร์หลัก

คุณสามารถเปิด SetGIDด้วยchmod g+s folder/pathหรือใส่ 2 ในตำแหน่งลำดับสูงสุดของรูปแบบตัวเลข chmod 2740 folder/pathเช่น: หากเป็นโฟลเดอร์ใหม่คุณสามารถใช้ความเป็นเจ้าของกับโฟลเดอร์และไฟล์ใหม่จะใช้กับโฟลเดอร์กลุ่มเจ้าของหรือในโฟลเดอร์ที่มีอยู่ระบุโฟลเดอร์เอง แต่ใช้สวิตช์ chmod -R เพื่อตั้งค่าการอนุญาต เด็กที่มีอยู่ทั้งหมด หากเด็กมีเจ้าของอยู่คุณจะต้องตั้งค่าเหล่านั้นเช่นกัน

chown -R user:group /path/to/existing/dir
chmod -R 2640 /path/to/existing/dir

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


ขอบคุณแฟรงค์ umask ของฉันคือ 0022 แล้วและเขาตั้งค่าเป็น 0022 เช่นกัน
แฟรงค์แฮร์ริส

โอchmod 2774เคหลังจากทำสิ่งนี้เสร็จ (ฉันต้องการสิทธิ์ 774 ดังนั้นฉันใช้ถูกต้องหรือไม่) เมื่อ hisusrnm แก้ไขไฟล์กลุ่มและสิทธิ์ไม่เปลี่ยนแปลง แต่ความเป็นเจ้าของไม่ได้ นี่เป็นพฤติกรรมที่คาดหวังหรือไม่? อีกคำถามหนึ่งฉันได้ทำการเปลี่ยนแปลงการอนุญาตโดยที่สิทธิ์ดูเหมือนจะเป็น -rwxrwxr-- หรือ -rwxrwsr-- เกิดอะไรขึ้นกับความแตกต่างของ x vs s?
แฟรงค์แฮร์ริส

1
ใช่ 2774 คือ 774 + SetGID มันเป็นความเข้าใจของฉันว่าถ้าผู้ใช้มีการเขียนการเข้าถึงไฟล์ แต่ไม่ได้ไปยังไดเรกทอรีหลักผู้ใช้เจ้าของจะเปลี่ยนเป็นผู้ใช้แก้ไข เห็นได้ชัดว่าเป็นเพราะวิธีการจัดการเคอร์เนลไม่ว่าจะเป็นการแก้ไขในสถานที่หรือเป็นการทดแทน เป็นกรณีในสถานการณ์นี้ คุณสามารถลองใช้ SetUID ถ้าคุณต้องการแก้ไขผู้ใช้สำหรับไฟล์ทั้งหมดใน dir แต่ระวัง SetUID เปลี่ยนวิธีการเรียกใช้ executables
Frank Thomas

ดังนั้นฉันพิงติดตั้ง ACL ฉันคิดว่าสิ่งที่เราต้องการทำที่นี่จะง่ายที่สุดกับสิ่งนั้นและมีผู้ใช้ไม่กี่คนในระบบโดยเฉพาะอย่างยิ่งเมื่อมันมาถึงผู้ใช้ที่รู้ว่าการอนุญาตคืออะไรดูเหมือนจะไม่ทำให้เกิดปัญหาใด ๆ .
แฟรงค์แฮร์ริส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.