ทำไมเราต้องใช้ visudo แทนการแก้ไขไฟล์ sudoers โดยตรง


83

ผมเข้าใจว่าถ้าคุณต้องการที่จะปรับเปลี่ยนผู้ที่สามารถใช้และสิ่งที่พวกเขาสามารถทำอะไรกับมันที่คุณควรใช้sudo visudoฉันรู้ว่าฉันไม่ควรแก้ไขไฟล์ / etc / sudoers โดยตรงด้วยตนเอง

มันคืออะไรvisudoที่แก้ไขไฟล์โดยตรงไม่ได้? มีอะไรผิดพลาด?

คำตอบ:


104

visudoตรวจสอบไวยากรณ์ของไฟล์ก่อนเขียนทับsudoersไฟล์จริง

หากคุณใช้โปรแกรมแก้ไขแบบธรรมดาสับสนไวยากรณ์และบันทึก ... sudoจะ (อาจ) หยุดทำงานและเนื่องจาก/etc/sudoersสามารถแก้ไขได้โดยrootคุณจะติดอยู่ (ยกเว้นว่าคุณมีวิธีอื่นในการรับรูท)

นอกจากนี้ยังช่วยให้มั่นใจได้ว่าการแก้ไขจะเป็นการดำเนินการปรมาณู การล็อคนี้มีความสำคัญหากคุณต้องการให้แน่ใจว่าไม่มีใครสามารถทำให้การเปลี่ยนแปลงการกำหนดค่าของคุณพิจารณาอย่างรอบคอบ สำหรับการแก้ไขไฟล์อื่น ๆ ในฐานะรูทนอกจาก/etc/sudoersนั้นยังมีsudoeditคำสั่งที่ป้องกันความขัดแย้งในการแก้ไขเช่นกัน


3
ว้าวไม่เคยรู้เรื่อง sudoedit มันไม่ทำงานบน OS X ดังนั้นฉันคิดว่ามันเป็นเครื่องมือ GNU หรือไม่ อย่างไรก็ตามข้อมูลเด็ด ๆ ที่นี่ ฉันมักจะแก้ไขด้วยตนเองและไม่เคยมีปัญหา - ฉันเข้าใจแล้วว่ามันเป็นเพียงแค่โชคดีและเครื่องมือสามารถช่วยป้องกันภัยพิบัติได้ ขอบคุณ!
Harv

2
@Harv ไม่มี GNU sudoและ OS X ไม่มีเครื่องมือ GNU เนื่องจาก sudo ถูกสร้างขึ้นครั้งแรกเป็นแอปพลิเคชั่นโอเพนซอร์ซจึงไม่มีเหตุผลว่าทำไมพวกเขาถึงมีการใช้งานมากมาย sudoและsudoeditมีคำสั่งเดียวกันsudoทำงานเป็นเมื่อเรียกว่าเป็นsudo -e sudoeditฉันเชื่อว่าเป็นเพียงว่า OS X ลืมที่จะเพิ่มsudoedit -> sudoลิงค์ แต่คุณควรจะสามารถใช้sudo -eหรือโทรsudoด้วย argv [0] ตั้งค่าsudoeditให้รับพฤติกรรมเดียวกัน
Stéphane Chazelas

ที่น่าสนใจคือvisudoใช้นาโนตามค่าเริ่มต้น
ทิม

3
@Tim: ค่าเริ่มต้น "ของจริง" คือ vi แต่สามารถกำหนดค่าให้ใช้อย่างอื่นได้ ดังนั้นนาโนอาจเป็นค่าเริ่มต้นสำหรับ distro / setup ของคุณ ดูหน้าคน
Mat

2
@ AngularInDepth.com ผลที่ได้ค่อนข้างชัดเจน หากคุณบันทึกไฟล์ sudoers ที่ไม่ถูกต้องระบบจะไม่สามารถแยกวิเคราะห์ได้ ดังนั้นถ้าฉันทำsudo vim /etc/sudoersบอทช์และไวยากรณ์แล้วฉันจะไม่สามารถsudo vim /etc/sudoersแก้ไขได้อีก อย่างมีประสิทธิภาพความสามารถทั้งหมดในการยกระดับสิทธิ์ผ่าน sudo จะหายไปเนื่องจากระบบจะไม่สามารถแยกวิเคราะห์ไฟล์ได้
Spencer D

23

จากหน้าคน visudo:

visudo ล็อคไฟล์ sudoers จากการแก้ไขหลาย ๆ อย่างพร้อมกันตรวจสอบสติพื้นฐานและตรวจหาข้อผิดพลาดในการแยกวิเคราะห์ หากไฟล์ sudoers กำลังถูกแก้ไขคุณจะได้รับข้อความให้ลองอีกครั้งในภายหลัง

ตรวจสอบคำตอบนี้จากข้อผิดพลาดของเซิร์ฟเวอร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.