ฉันสะดุดกับคำถามนี้ในขณะที่ค้นหาสิ่งที่ไม่เกี่ยวข้องอย่างสมบูรณ์ แต่ฉันคิดว่าฉันจะเพิ่มความแตกต่างที่สำคัญต่อไปนี้ซึ่งยังไม่ได้รับการกล่าวถึง: sudoedit ไม่ได้เรียกใช้โปรแกรมแก้ไขของคุณเป็น root
$ sudo vim /etc/farts.conf
จะเรียกใช้ vim ในฐานะ root เพื่อให้สามารถอ่านไฟล์ได้ ข้อเสียคือตอนนี้ตัวแก้ไขยังทำงานเหมือนรูทและสามารถทำอะไรก็ได้ หากคุณเพียงต้องการอนุญาตให้ผู้ใช้แก้ไขไฟล์กำหนดค่าและไม่มีอะไรเลวร้ายเกินไปคุณเพียงแค่ให้พวกเขา ราก ในทั้งระบบ ไม่มีอะไรป้องกันฉันจากการวางไข่กระสุนจากเสียงเรียกเข้าด้วย :sh
หรือ :!command
และเนื่องจากเป็นกระบวนการย่อยพวกเขาจะทำงานเหมือนรูท
ในทางกลับกัน:
$ sudoedit /etc/farts.conf
จะทำงานแตกต่างกันจริง มันจะสร้างสำเนาที่มีชื่อไม่ซ้ำกันใน / tmp พร้อมสิทธิ์ที่ล็อคไว้สำหรับผู้ใช้ของคุณเท่านั้นและจากนั้นจะทำการแก้ไขโดยปกติโดยไม่มีสิทธิ์รูทบนสำเนา
เมื่อคุณออกจากตัวแก้ไขมันจะทำการเปรียบเทียบไฟล์ชั่วคราวและไฟล์ต้นฉบับและจะแทนที่ไฟล์เดิมด้วยการแก้ไขของคุณอย่างปลอดภัยหากมีการเปลี่ยนแปลง
ในสถานการณ์สมมตินี้มันเป็นไปได้ที่จะอนุญาตให้ผู้ใช้แก้ไขไฟล์ระบบ แต่ไม่อนุญาตให้พวกเขาเรียกใช้ไบนารีแบบสุ่มในฐานะที่เป็นรูตหรือเดือยทุกที่ในระบบไฟล์
นั่นคือความแตกต่างที่แท้จริงส่วนที่เหลือที่ได้รับการกล่าวถึงเป็นผลข้างเคียงที่เรียบร้อย