ฉันจะระบุอาร์กิวเมนต์คำสั่งใน sudoers ได้อย่างไร ในฐานะพื้นหลังaws
คำสั่งนั้นเป็นประตูสู่กลุ่มย่อยของระบบย่อยทั้งหมดและฉันต้องการ จำกัด ผู้ใช้ให้ทำงานเท่านั้นaws s3 cp ...any other args...
เมื่อฉันลองทำสิ่งต่อไปนี้ /etc/sudoers
Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws s3 cp, /usr/local/aws/bin/aws s3 cp
gbt1 ALL=(gbt-ops) NOPASSWD: AWSS3_CMD
เชลล์โชคไม่ดีที่แจ้งให้ใส่รหัสผ่าน
$ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1
gbt-ops's password:
ถ้าฉันลบคำสั่งเกิดขึ้นใน Cmnd_Alias มันจะไหลตามที่ต้องการ (โดยไม่ต้องใส่รหัสผ่าน) แต่การอนุญาตนั้นกว้างเกินไป ดังนั้นอะไรคือวิธีที่เหมาะสมในการ จำกัด การเรียกใช้คำสั่งบางประเภทเท่านั้น
Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws, /usr/local/aws/bin/aws
แล้วก็
$ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1
...happy
ขอบคุณมาก.