ผมเข้าใจว่าถ้าคุณต้องการที่จะปรับเปลี่ยนผู้ที่สามารถใช้และสิ่งที่พวกเขาสามารถทำอะไรกับมันที่คุณควรใช้sudo visudoฉันรู้ว่าฉันไม่ควรแก้ไขไฟล์ / etc / sudoers โดยตรงด้วยตนเอง
มันคืออะไรvisudoที่แก้ไขไฟล์โดยตรงไม่ได้? มีอะไรผิดพลาด?
ผมเข้าใจว่าถ้าคุณต้องการที่จะปรับเปลี่ยนผู้ที่สามารถใช้และสิ่งที่พวกเขาสามารถทำอะไรกับมันที่คุณควรใช้sudo visudoฉันรู้ว่าฉันไม่ควรแก้ไขไฟล์ / etc / sudoers โดยตรงด้วยตนเอง
มันคืออะไรvisudoที่แก้ไขไฟล์โดยตรงไม่ได้? มีอะไรผิดพลาด?
คำตอบ:
visudoตรวจสอบไวยากรณ์ของไฟล์ก่อนเขียนทับsudoersไฟล์จริง
หากคุณใช้โปรแกรมแก้ไขแบบธรรมดาสับสนไวยากรณ์และบันทึก ... sudoจะ (อาจ) หยุดทำงานและเนื่องจาก/etc/sudoersสามารถแก้ไขได้โดยrootคุณจะติดอยู่ (ยกเว้นว่าคุณมีวิธีอื่นในการรับรูท)
นอกจากนี้ยังช่วยให้มั่นใจได้ว่าการแก้ไขจะเป็นการดำเนินการปรมาณู การล็อคนี้มีความสำคัญหากคุณต้องการให้แน่ใจว่าไม่มีใครสามารถทำให้การเปลี่ยนแปลงการกำหนดค่าของคุณพิจารณาอย่างรอบคอบ สำหรับการแก้ไขไฟล์อื่น ๆ ในฐานะรูทนอกจาก/etc/sudoersนั้นยังมีsudoeditคำสั่งที่ป้องกันความขัดแย้งในการแก้ไขเช่นกัน
sudoและ OS X ไม่มีเครื่องมือ GNU เนื่องจาก sudo ถูกสร้างขึ้นครั้งแรกเป็นแอปพลิเคชั่นโอเพนซอร์ซจึงไม่มีเหตุผลว่าทำไมพวกเขาถึงมีการใช้งานมากมาย sudoและsudoeditมีคำสั่งเดียวกันsudoทำงานเป็นเมื่อเรียกว่าเป็นsudo -e sudoeditฉันเชื่อว่าเป็นเพียงว่า OS X ลืมที่จะเพิ่มsudoedit -> sudoลิงค์ แต่คุณควรจะสามารถใช้sudo -eหรือโทรsudoด้วย argv [0] ตั้งค่าsudoeditให้รับพฤติกรรมเดียวกัน
visudoใช้นาโนตามค่าเริ่มต้น
sudo vim /etc/sudoersบอทช์และไวยากรณ์แล้วฉันจะไม่สามารถsudo vim /etc/sudoersแก้ไขได้อีก อย่างมีประสิทธิภาพความสามารถทั้งหมดในการยกระดับสิทธิ์ผ่าน sudo จะหายไปเนื่องจากระบบจะไม่สามารถแยกวิเคราะห์ไฟล์ได้
จากหน้าคน visudo:
visudo ล็อคไฟล์ sudoers จากการแก้ไขหลาย ๆ อย่างพร้อมกันตรวจสอบสติพื้นฐานและตรวจหาข้อผิดพลาดในการแยกวิเคราะห์ หากไฟล์ sudoers กำลังถูกแก้ไขคุณจะได้รับข้อความให้ลองอีกครั้งในภายหลัง
ตรวจสอบคำตอบนี้จากข้อผิดพลาดของเซิร์ฟเวอร์