การขอรหัสผ่านของผู้ใช้รายอื่นเมื่อใช้ sudo


3

ฉันใช้แพคเกจระบบอัตโนมัติในบ้านชื่อ HomeSeer บนเซิร์ฟเวอร์ Ubuntu 15.04 ฉันได้กำหนดค่าให้ทำงานด้วยบัญชีบริการ (เรียกว่า "_homeseer") และฉันได้ chown'd ไดเรกทอรีแอปไปที่ _homeseer: _homeseer

ในการติดตั้งการอัปเดตแพ็คเกจนี้ฉันดาวน์โหลดไฟล์ tar.gz จากนั้นเรียกใช้สคริปต์ "update.sh" ที่ผู้จำหน่ายระบุ สคริปต์นี้แยกไฟล์ที่ถูกบีบอัดซึ่งเกิดขึ้นกับการเขียนทับตัวเอง (update.sh) ... ดังนั้นฉันคิดว่าฉันไม่สามารถเปลี่ยนสคริปต์นั้นได้เว้นแต่ว่าฉันจะคัดลอกออกไปยังโฟลเดอร์อื่น

ในฐานะส่วนหนึ่งของ update.sh มีบรรทัดที่เรียกว่า "sudo update_extra.sh" เนื่องจากฉันใช้ update.sh เป็นบัญชีบริการบรรทัด sudo นี้จะแจ้งรหัสผ่านของบัญชีบริการ ... ซึ่งฉันจำไม่ได้ (หรือฉันคิดว่าฉันไม่ต้องการ)

ฉันไม่ต้องการให้สิทธิ์บัญชี sudo แบบเต็มโดยไม่ต้องใช้รหัสผ่านเนื่องจากเป็นความเสี่ยงด้านความปลอดภัยที่สำคัญ (เช่นแอปพลิเคชันทำงานบนเว็บเซิร์ฟเวอร์) ฉันยังลังเลที่จะให้สิทธิ์แบบเต็มแก่ sudo ในการเรียกใช้ไฟล์ update_extra.sh ในฐานะรูทเนื่องจากไฟล์ดังกล่าวสามารถอัปเดตได้ด้วยบัญชีบริการเดียวกัน

คำถามของฉัน:

เป็นไปได้หรือไม่ที่จะกำหนดค่า sudo (เช่น visudo) ดังนั้นหากบัญชี _homeseer พยายามใช้ sudo มันจะขอรหัสผ่านบัญชีส่วนตัวของฉันแทนและทำงานด้วยสิทธิ์ sudo ที่ฉันมีอยู่หรือไม่ ฉันไม่ควรตั้งรหัสผ่านรูทหากฉันสามารถหลีกเลี่ยงได้ ... แต่รูปลักษณ์เบื้องต้นดูเหมือนว่าบ่งบอกว่าฉันอาจมีตัวเลือกไม่มากนักถ้าฉันต้องการไปเส้นทางนี้

หรือฉันจำเป็นต้องแก้ไขสคริปต์ update.sh นั้นกำหนดค่าการอนุญาตกลุ่มเพื่อให้ฉันสามารถใช้การอัปเดตเป็นตัวฉันเองและ chown กับบัญชีบริการในภายหลังได้หรือไม่

คำตอบ:


2

คุณสามารถจัดการกับ sudo ได้

หากคุณเพิ่มสิ่งนี้ลงในไฟล์ sudoers ของคุณ:

_homeseer hostname = (_homeseer) NOPASSWD: /path/to/update.sh
  • hostname = output ของhostnameบนเครื่องของคุณ

สิ่งหนึ่งที่ควรทราบคือไม่มีวิธีที่ปลอดภัย 100% ในการจัดการกับ update.sh เนื่องจากอาจมีคำสั่งใด ๆ อยู่และฉันถือว่ามันจะเปลี่ยนแปลงตลอดเวลาซึ่งหมายความว่าคุณไม่สามารถใช้ฟังก์ชัน HASH เพื่อ ตรวจสอบให้แน่ใจว่าสคริปต์เหมือนกันกับที่เคยเป็นมาก่อน


ขอบคุณ! ภายใน update.sh ผู้ขายมีบรรทัดที่อ่าน "sudo ./update_extra.sh" ซึ่งเป็นบรรทัดที่ให้ความเศร้าโศกเล็กน้อย ที่ได้รับ update_extra.sh ยังไม่มีสิ่งใดที่มีนัยสำคัญ ... ดังนั้นฉันอาจทำตามคำแนะนำของคุณได้ อย่างไรก็ตามฉันคาดหวังว่าในที่สุดผู้ขายจะเติมไฟล์นี้ด้วยรหัสที่ควรเรียกใช้ "เป็น root" ฉันไม่ต้องการให้ _homeseer สามารถ sudo รูทโดยไม่มีรหัสผ่านได้อย่างชัดเจน ดังนั้นฉันเดาว่าฉันควรเขียนสคริปต์การอัปเดตของตัวเองเพื่อให้ทำงานเป็นฉันและ chown / chmod โฟลเดอร์เมื่อเสร็จแล้ว ... ?
boonebytes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.