แม้จะมีคำเตือนในวิธีแก้ปัญหาแรก แต่ฉันได้เล่นกับ symlink เล็กน้อยหลังจากอ่านคำหลักนี้
หนึ่งอาจทำเช่นนี้:
สมมติว่าผู้ดูแลระบบทั้งสอง แอดมิน1
และ แอดมิน2
อยู่ในกลุ่มเดียวกัน แอดเอ็มเอ็กซ์
. สมมติ /home/adm1
เป็นโฮมไดเร็กตอรี่ของ แอดมิน1
และมีการกำหนดค่าอย่างถูกต้อง ไม่ต้องทำงานให้เสร็จ แอดมิน2
ด้วยการตั้งค่าที่สมเหตุสมผล เนื่องจากไดเร็กทอรีของเขาจะถูกแทนที่ด้วยซอฟต์ลิงก์ไปยัง /home/adm1
:
sudo rm -rf /home/adm2 # ลบโฮมไดเร็กทอรีดั้งเดิมของ adm2
# หมายเหตุ: ต้องมี adm2 ก่อนโฮมไดเร็กตอรี่ของเขา
# ถูกแทนที่ด้วยซอฟต์ลิงค์ มิฉะนั้นเจ้าของและ
# กลุ่มของชี้ไปที่ไดเร็กทอรีจะเปลี่ยนไป!
sudo chgrp admx /home # ระดับกลาง: ตอนนี้ /home เป็นของ root:admx
sudo chmod g+ws /home # intermediate: ตั้งค่า w และ SGID-bit เพื่อสืบทอดกลุ่ม
sudo ln -s /home/adm1 /home/adm2 # สร้างโฮมไดเร็กตอรี่ของ adm2 เป็นซอฟต์ลิงค์
# เนื่องจาก SGID-บิต root:admx เป็นเจ้าของลิงก์
sudo chmod g-ws /home # ลบสิทธิ์ที่ได้รับในขั้นตอนที่ 2 และ 3
sudo chgrp root /home # กลับสู่สถานะเดิม
sudo chown -R adm1:admx /home/adm1 # ตรวจสอบให้แน่ใจว่า adm2 ได้รับสิทธิ์การเข้าถึงผ่านกลุ่ม admx
sudo chmod -R g+s /home/adm1/ # สร้างการสืบทอดกลุ่มเพื่อสนับสนุน admx
sudo chmod -R g+w /home/adm1/.config/* # อาจมีโปรแกรมเช่น x-tile ที่ต้องการเขียนที่นั่น
สองขั้นตอนสุดท้ายมีความจำเป็นเพราะ แอดมิน2
ไม่ใช่เจ้าของ /home/adm1
.
ข้อได้เปรียบของโซลูชันนี้ - แม้ว่าจะซับซ้อนกว่าเมื่อเทียบกับโซลูชันด้านบน - คือการหลีกเลี่ยงการทำซ้ำ ./config
(ไม่ได้กล่าวถึงที่นั่น) ไปยังไดเร็กทอรีโฮมของผู้ดูแลระบบรายอื่นเพื่อให้ทั้งสองใช้การตั้งค่าเดียวกัน ผู้ดูแลระบบคนที่สองได้รับอำนาจทั้งหมดของเขาผ่านทางกลุ่ม แอดเอ็มเอ็กซ์
. การตั้งค่าบิต SGID ที่ส่วนท้ายช่วยให้แน่ใจว่าไดเร็กทอรีที่สร้างขึ้นในภายหลังด้านล่าง /home/adm1
สืบทอดกลุ่มด้วย แอดเอ็มเอ็กซ์
.