2
ฉันจะอนุญาตให้ผู้ใช้ที่ไม่ใช่รูทควบคุมเซอร์วิส systemd ด้วยอินสแตนซ์ได้อย่างไร
ฉันต้องการอนุญาตให้ผู้ใช้ในdbaกลุ่มสามารถควบคุมdatabase@บริการได้ คำตอบสำหรับคำถามที่เกี่ยวข้องนี้คือการทำรายการsystemctl"คำกริยา" ทั้งหมดที่ฉันต้องการอนุญาตในsudoersไฟล์อย่างไรก็ตามนั่นไม่ได้ใช้กับกรณีของฉันเพราะฉันไม่รู้ว่าฐานข้อมูลใดที่อาจมีอยู่ในระบบ ตัวอย่างเช่นถ้าฉันแสดง %dba = /usr/bin/systemctl start database@awsesomeapp %dba = /usr/bin/systemctl start database@anotherawsesomeapp %dba = /usr/bin/systemctl start database@yetanotherawsesomeapp %dba = /usr/bin/systemctl start database@wowyetanotherawsesomeapp # ... other "verbs" omitted for brevity ที่ไม่ครอบคลุมอินสแตนซ์ที่อาจมีอยู่ในอนาคตและ dba จะไม่สามารถทำได้ $ sudo systemctl start database@omgwowyetanotherawsesomeapp อย่างไรก็ตามฉันคิดในแง่ของบรรจุภัณฑ์มากกว่าที่คิดกับระบบเฉพาะ โปรดทราบว่าดังที่แสดงในคำตอบที่น่าอัศจรรย์สำหรับคำถามอื่นที่เกี่ยวข้องการใช้ sudo globs สำหรับสิ่งนี้ไม่ปลอดภัยในท้ายที่สุด: %dba ALL = /usr/bin/systemctl start database@[a-z]* …