Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

จาก sudo ถึง doas:ลดความซับซ้อนของสิทธิ์ Linux เพื่อความปลอดภัยที่ดีขึ้น

จาก sudo ถึง doas:ลดความซับซ้อนของสิทธิ์ Linux เพื่อความปลอดภัยที่ดีขึ้น

เผยแพร่เมื่อ 4 เมษายน 2026, 10:00 น. EDT

Yadullah Abidi สำเร็จการศึกษาด้านวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยเดลี และสำเร็จการศึกษาระดับสูงกว่าปริญญาตรีสาขาวารสารศาสตร์จาก Asian College of Journalism เมืองเจนไน ด้วยประสบการณ์กว่าทศวรรษในระบบ Windows และ Linux การเขียนโปรแกรม ฮาร์ดแวร์พีซี ความปลอดภัยทางไซเบอร์ การวิเคราะห์มัลแวร์ และการเล่นเกม เขาผสมผสานความรู้ทางเทคนิคเชิงลึกเข้ากับสัญชาตญาณบรรณาธิการที่แข็งแกร่ง

ปัจจุบัน Yadullah เขียนให้กับ MakeUseOf ในฐานะนักเขียนทีมงาน ซึ่งครอบคลุมเรื่องความปลอดภัยทางไซเบอร์ เกม และเทคโนโลยีสำหรับผู้บริโภค ก่อนหน้านี้เขาเคยทำงานเป็นรองบรรณาธิการที่ Candid.Technology และบรรณาธิการข่าวที่ The Mac Observer ซึ่งเขารายงานทุกอย่างตั้งแต่การโจมตีทางไซเบอร์ที่รุนแรงไปจนถึงเทคโนโลยีล่าสุดของ Apple

นอกเหนือจากงานด้านสื่อสารมวลชนแล้ว Yadullah ยังเป็นนักพัฒนาฟูลสแตกที่มีประสบการณ์ด้าน JavaScript/TypeScript, Next.js, สแต็ก MERN, Python, C/C++ และ AI/ML ไม่ว่าเขาจะวิเคราะห์มัลแวร์ ตรวจสอบฮาร์ดแวร์ หรือสร้างเครื่องมือบน GitHub เขาก็นำมุมมองของนักพัฒนาที่ลงมือปฏิบัติจริงมาสู่การทำข่าวเชิงเทคโนโลยี

Sudo เป็นคำสั่งที่กลายมาเป็นความทรงจำของกล้ามเนื้อสำหรับผู้ใช้ Linux ทุกคนบนโลกนี้ เมื่อใดก็ตามที่คุณต้องการเรียกใช้บางสิ่งที่มีสิทธิ์ระดับสูง sudo จะปรากฏขึ้นโดยอัตโนมัติ แต่ sudo นั้นเก่าแล้ว และมีวิธีที่ดีกว่าในการยกระดับสิทธิพิเศษในเทอร์มินัล Linux ที่คุณอาจมองข้ามไป

เช่นเดียวกับการเปลี่ยนจากระบบปฏิบัติการ "ไดรเวอร์รายวัน" สามารถปรับปรุงเวิร์กโฟลว์ของคุณได้ทันที การเปลี่ยนจาก sudo เป็น doas บน Linux ก็สามารถทำได้เช่นเดียวกันสำหรับเวิร์กโฟลว์เทอร์มินัลของคุณ ฉันได้ทำการเปลี่ยนแล้ว และกฎการอนุญาตของฉันก็สมเหตุสมผลในที่สุด

Sudo ทรงพลัง—แต่ยุ่งเกินไป

กฎที่ซับซ้อนเกินไปซึ่งคนส่วนใหญ่แทบจะไม่เข้าใจ

จาก sudo ถึง doas:ลดความซับซ้อนของสิทธิ์ Linux เพื่อความปลอดภัยที่ดีขึ้น

ซูโดะมีอยู่ทั่วไป มันมาพร้อมกับ Ubuntu, Fedora, Arch และ Linux distro หลักทุกตัวที่คุณเคยได้ยิน สำหรับผู้ใช้ Linux ส่วนใหญ่ คำนำหน้าที่คุณใช้หน้าคำสั่งเมื่อบัญชีผู้ใช้ของคุณไม่ได้รับอนุญาตให้เรียกใช้ ก็แค่นั้นแหละ เป็นหนึ่งในคำสั่งเทอร์มินัล Linux ที่สามารถแก้ไขปัญหาระบบส่วนใหญ่ได้

อย่างไรก็ตาม ปัญหาคือความซับซ้อนของ sudo ซอร์สโค้ด sudo มีประมาณ 160,000 บรรทัดของ C หากคุณรวมไฟล์การกำหนดค่าและไฟล์สนับสนุน จำนวนนั้นจะมากกว่า 223,000 สำหรับเครื่องมือที่มีหน้าที่หลักในการรันคำสั่งที่กำหนดในฐานะรูท นั่นเป็นจำนวนโค้ดจำนวนมากที่ทำงานอยู่ในกระบวนการพิเศษ

จาก sudo ถึง doas:ลดความซับซ้อนของสิทธิ์ Linux เพื่อความปลอดภัยที่ดีขึ้น เครดิต: Yadullah Abidi / MakeUseOf

โค้ดเบสที่ใหญ่ขึ้นช่วยให้ผู้คุกคามมีพื้นผิวการโจมตีที่ใหญ่ขึ้น และในกรณีที่คุณไม่รู้ sudo ก็เคยใกล้ชิดกับมันมาก่อน ตัวอย่างเช่น CVE-2021-3156 ซึ่งเป็นช่องโหว่บัฟเฟอร์โอเวอร์โฟลว์แบบฮีปใน sudo อนุญาตให้มีการเลื่อนระดับสิทธิ์การใช้งานเต็มรูปแบบไปยังรูท และยังคงตรวจไม่พบในโค้ดเบสมาเกือบทศวรรษ

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

username ALL=(ALL:ALL) ALL

สำหรับใครก็ตามที่ต้องจัดการกับไวยากรณ์นี้เป็นครั้งแรก อาจค่อนข้างซับซ้อน นั่นเป็นบรรทัดจากรูปแบบการกำหนดค่าที่มีการตัดสินใจเกี่ยวกับฟีเจอร์มานานหลายทศวรรษที่ไม่ได้คำนึงถึงความเรียบง่าย

Doas ทำให้มันเรียบง่ายอย่างไร้ความปราณี

งานเดียว มีไวยากรณ์น้อยที่สุด ไม่มียิมนาสติกจิต

Doas ถูกเขียนขึ้นสำหรับ OpenBSD หลังจากที่โครงการ OpenBSD ตัดสินใจว่า sudo มีขนาดใหญ่เกินกว่าจะจัดส่งในฐานระบบ มันถูกสร้างขึ้นตั้งแต่ต้นจนจบเพื่อทำงานเดียวกันโดยพื้นฐาน โดยไม่ต้องแบกรับภาระหนักหน่วงของ sudo

ผลลัพธ์ที่ได้คือโปรแกรมที่มีซอร์สโค้ดประมาณ 500 บรรทัดของ C และเมื่อติดตั้งแล้ว โปรแกรมจะใช้พื้นที่บนดิสก์เพียงหลายกิโลไบต์เท่านั้น รหัสที่น้อยลงหมายถึงพื้นผิวการโจมตีที่เล็กลง จุดบกพร่องที่อาจเกิดขึ้นน้อยลง และไบนารี่ที่มนุษย์สามารถตรวจสอบได้ในระยะเวลาที่เหมาะสม

ไวยากรณ์การกำหนดค่ายังเป็นไปตามปรัชญามินิมอลลิสต์เดียวกันอีกด้วย แทนที่จะทำให้คุณต่อสู้กับไวยากรณ์ sudoers doas ใช้ภาษาอังกฤษธรรมดา คุณสามารถอ่านออกเสียงการกำหนดค่า doas ส่วนใหญ่และเข้าใจความหมายได้อย่างแน่ชัด ตัวอย่างเช่น doas ที่เทียบเท่ากับการกำหนดค่า sudoers ข้างต้นคือ:

permit username as root

แค่นั้นแหละ. ไม่จำเป็นต้องทำงานในสัญลักษณ์สุ่มและอักขระพิเศษในคำสั่งที่ควรอ่านและเข้าใจได้ง่าย

การสลับใช้เวลาไม่กี่นาที ไม่ใช่ชั่วโมง

การตั้งค่าด่วนที่แทนที่ sudo โดยไม่ต้องปวดหัว

ตอนนี้ doas เป็นเครื่องมือ OpenBSD ดั้งเดิม แต่คุณสามารถใช้พอร์ต OpenDoas เพื่อใช้งานบน Linux ได้ บน Debian และ Ubuntu คุณสามารถติดตั้งด้วยตัวจัดการแพ็คเกจเริ่มต้นได้เช่นกัน:

จาก sudo ถึง doas:ลดความซับซ้อนของสิทธิ์ Linux เพื่อความปลอดภัยที่ดีขึ้น
apt install doas

และแนวทางนี้ก็ใช้ได้กับ distros อื่น ๆ เช่นกัน คุณสามารถใช้ pacman บน Arch และ dns บน Fedora และติดตั้ง doas ได้ในคำสั่งเดียว คุณต้องสร้างไฟล์กำหนดค่าที่ /etc/doas.conf เนื่องจากไฟล์ไม่ได้สร้างขึ้นโดยอัตโนมัติเมื่อติดตั้ง (ต่างจาก sudo) เชื่อหรือไม่ก็ไม่ใช่ข้อผิดพลาด เป็นคุณลักษณะที่บังคับให้คุณต้องไตร่ตรองมากขึ้นเกี่ยวกับสิ่งที่คุณอนุญาต การกำหนดค่าเองเป็นบรรทัดง่ายๆ:

จาก sudo ถึง doas:ลดความซับซ้อนของสิทธิ์ Linux เพื่อความปลอดภัยที่ดีขึ้น
permit persist yourusername as root

นี่คือการกำหนดค่าขั้นต่ำสำหรับระบบผู้ใช้คนเดียว คุณอาจต้องการเปลี่ยนตามจำนวนผู้ใช้ที่คุณมีและกรณีการใช้งานเฉพาะ

เมื่อสร้างไฟล์การกำหนดค่าแล้ว ให้ล็อคการอนุญาตอย่างถูกต้อง การตั้งค่าความเป็นเจ้าของเป็น root:root และการอนุญาตเป็น 0400 จะทำให้ไฟล์อ่านได้โดย root เท่านั้น ซึ่ง doas ต้องใช้ก่อนที่จะรันด้วยซ้ำ ตรวจสอบไฟล์การกำหนดค่าด้วยการรัน doas -C /etc/doas.conf เท่านี้คุณก็พร้อมแล้ว

เนื่องจาก doas ได้รับการออกแบบมาสำหรับ OpenBSD จึงไม่เก็บตัวแปรสภาพแวดล้อมเฉพาะของ Linux เช่น XAUTHORITY หรือ LC_ALL ไว้โดยอัตโนมัติ หากคุณต้องการรันโปรแกรมกราฟิกภายใต้ X หรือคงการตั้งค่าภาษาของคุณ สิ่งนี้อาจทำให้คุณสะดุดได้ โชคดีที่การแก้ไขมีบรรทัดพิเศษเพียงบรรทัดเดียวในไฟล์กำหนดค่า:

setenv { DISPLAY XAUTHORITY LANG LC_ALL }

โปรดทราบว่า doas จะไม่ทำลายการตั้งค่า GUI หรือสถานที่ของคุณ มันแค่ปฏิเสธที่จะถือว่าสิ่งที่ควรเชื่อถือได้ มันเป็นความผิดพลาดที่แม้แต่ผู้ใช้ Linux ที่มีประสบการณ์ก็สามารถทำได้ เนื่องจากรูทจะไม่สามารถดูเซสชัน X ของคุณได้ และคำสั่งอาจเปลี่ยนภาษากะทันหัน จัดเรียงข้อความแตกต่างออกไป หรือทำงานไม่สอดคล้องกัน

จาก sudo ถึง doas:ลดความซับซ้อนของสิทธิ์ Linux เพื่อความปลอดภัยที่ดีขึ้น

โอเพ่นโดส

ระบบปฏิบัติการ ลินุกซ์

นักพัฒนาซอฟต์แวร์ เท็ด อุนังสท์

รูปแบบราคา ฟรีโอเพ่นซอร์ส

OpenDoas เป็นการใช้งานเครื่องมือยกระดับสิทธิ์ doas แบบพกพาและมีน้ำหนักเบา

ขั้นตอนการทำงานของฉันรู้สึกเบาลงแล้ว

แรงเสียดทานน้อยลง ความประหลาดใจน้อยลง การควบคุมเท่าเดิม

ในการใช้งานประจำวันของฉัน การใช้ doas รู้สึกมีเจตนามากขึ้น ตอนนี้สามารถอ่านไฟล์การกำหนดค่าได้แล้ว ซึ่งหมายความว่าฉันจะกลับมาที่ไฟล์นั้นอีกครั้งเพื่อแก้ไขเพิ่มเติมและปรับแต่งการควบคุมคอมพิวเตอร์ของฉันในแบบที่ฉันชอบ ซึ่งเป็นสิ่งที่ไม่เคยเกิดขึ้นกับ sudoers

จาก sudo ถึง doas:ลดความซับซ้อนของสิทธิ์ Linux เพื่อความปลอดภัยที่ดีขึ้น ที่เกี่ยวข้อง

5 โปรแกรมที่คุณต้องรู้ในฐานะผู้ใช้ Linux

Linux เป็นมากกว่าระบบปฏิบัติการสำรอง และโปรแกรมเหล่านี้ก็พิสูจน์ได้

กฎทุกข้อคือการตัดสินใจอย่างมีสติซึ่งเขียนด้วยภาษาธรรมดา ซึ่งหมายความว่าคุณมีโอกาสน้อยที่จะให้สิทธิ์ที่คุณไม่ได้ตั้งใจโดยไม่ตั้งใจ สำหรับใครก็ตามที่ใช้สภาพแวดล้อมเดสก์ท็อปแบบผู้ใช้คนเดียว doas มอบทุกสิ่งที่ sudo มอบให้กับคุณโดยไม่มีความซับซ้อนใดๆ ที่ไม่ได้มีไว้สำหรับคุณตั้งแต่แรก

สวิตช์ไม่ใช่สำหรับทุกคน สภาพแวดล้อมเซิร์ฟเวอร์ขนาดใหญ่ที่มีผู้ใช้หลายรายหรือการตั้งค่าที่ต้องอาศัยการควบคุมปลีกย่อยที่เป็นที่ยอมรับของ sudo มีแนวโน้มที่จะยังคงอยู่กับ sudo แต่สำหรับเครื่อง Linux ส่วนตัว ไม่ว่าคุณจะใช้ Arch, Mint, Ubuntu หรืออะไรก็ตาม doas มอบวิธีที่ดีกว่า ง่ายกว่า และสะอาดกว่าในการจัดการสิทธิ์มากกว่าที่ sudo จะสามารถทำได้