Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

Doas คืออะไรและจะติดตั้งอย่างไร

Doas คืออะไรและจะติดตั้งอย่างไร

Doas เป็นโปรแกรมยกระดับสิทธิ์ที่คล้ายกับ sudo ออกแบบมาให้มีน้ำหนักเบาและเรียบง่ายที่สุด เป็นโปรแกรมยกระดับสิทธิ์เริ่มต้นสำหรับ OpenBSD แต่ยังใช้ได้กับระบบปฏิบัติการที่คล้าย UNIX อื่นๆ ผ่านโปรแกรม OpenDoas

ปัญหาเกี่ยวกับ sudo

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

ตัวอย่างเช่น หากต้องการแก้ไขพฤติกรรมของ sudo คุณต้องเรียกใช้คำสั่งชื่อ visudo . นี่เป็นโปรแกรมตัวโหลดพิเศษที่เปิดไฟล์ “/etc/sudoers” ใน “เซฟโหมด”

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

Doas คืออะไรและจะติดตั้งอย่างไร

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

Sudo เป็นโปรแกรมที่ยอดเยี่ยม ไวยากรณ์การกำหนดค่าที่ซับซ้อนสามารถสร้างระบบการอนุญาตที่ซับซ้อนซึ่งอาจเป็นประโยชน์สำหรับผู้ดูแลระบบที่มีประสบการณ์

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

เหตุใดจึงต้องใช้ doas

ความตั้งใจของ Doas คือการแก้ความซับซ้อนของ sudo ได้รับการพัฒนาสำหรับ OpenBSD และถูกย้ายไปยังระบบลีนุกซ์แทบทุกระบบอย่างรวดเร็ว โดยมีจุดมุ่งหมายเพื่อให้ใช้งานง่ายและรวดเร็ว แต่ยังง่ายต่อการบำรุงรักษาและปลอดภัย

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

%wheel ALL=(ALL) NOPASSWD: ALL

ใน doas ไวยากรณ์นั้นเข้าใจง่ายกว่ามาก:

permit nopass :wheel as root
Doas คืออะไรและจะติดตั้งอย่างไร

นอกจากนี้ doas ไม่ต้องการโปรแกรมตัวโหลดพิเศษเช่น visudo เพื่อแก้ไขการกำหนดค่า ผู้ใช้จำเป็นต้องแก้ไขไฟล์การกำหนดค่าด้วยโปรแกรมแก้ไขข้อความเท่านั้น และตราบใดที่ผู้ใช้มีสิทธิ์เพียงพอ พวกเขาจะสามารถทำการเปลี่ยนแปลงการกำหนดค่าได้

ทำให้ doas เข้าใจและเข้าใจได้ง่ายขึ้น แนวทางที่เรียบง่ายและเรียบง่ายในการสร้างผู้ใช้และกลุ่มที่ได้รับสิทธิพิเศษทำให้กระบวนการนี้โปร่งใสและปราศจากข้อผิดพลาดสำหรับผู้ใช้

วิธีตั้งค่า doas ด้วย sudo

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

ใน Debian และ Ubuntu คุณสามารถติดตั้ง doas โดยใช้ apt:

sudo apt install doas

ใน Arch Linux คุณสามารถใช้ pacman:

sudo pacman -Syu opendoas

ด้วย Fedora คุณสามารถใช้ dnf:

sudo dnf install opendoas

สำหรับ Void Linux คุณสามารถใช้ xbps:

sudo xbps-install opendoas

ในกรณีของฉัน ฉันกำลังติดตั้ง doas บน Void Linux ดังนั้นฉันจึงใช้ XBPS

Doas คืออะไรและจะติดตั้งอย่างไร

ไฟล์การกำหนดค่า doas

เมื่อติดตั้ง doas แล้ว คุณจะแก้ไขไฟล์ “/etc/doas.conf” ได้โดยเปลี่ยนเป็นผู้ใช้รูทโดยใช้ su

su --command="nano /etc/doas.conf"

Su จะถามรหัสผ่านรูทของคุณ และหลังจากนั้นจะเปิดหรือสร้างไฟล์การกำหนดค่าโดยใช้ nano

Doas คืออะไรและจะติดตั้งอย่างไร

เมื่อเสร็จแล้ว คุณอาจสังเกตเห็นว่า “doas.conf” ว่างเปล่า สิ่งนี้แตกต่างอย่างสิ้นเชิงเมื่อเทียบกับ visudo แต่ดังที่เราได้กล่าวไปแล้วข้างต้น การกำหนดค่า doas นั้นค่อนข้างไม่สำคัญ

รูปแบบการกำหนดค่า

ไวยากรณ์สำหรับ doas.conf มีดังนี้:

permit|deny [options] identity [as target] [cmd command [args ...]]
  • อนุญาต และ ปฏิเสธ จะกำหนดว่า doas จะอนุญาตให้ใช้กฎหรือไม่
  • ตัวเลือก เป็นการกำหนดค่าเพิ่มเติมสำหรับ doas ตัวเลือกที่มีประโยชน์ที่สุดสำหรับผู้ใช้ทั่วไปคือ คงอยู่ และ ไม่ผ่าน .
  • ตัวตน คือผู้ใช้หรือกลุ่มที่กำลังดำเนินการ doas
  • ในฐานะ เป้าหมาย คือผู้ใช้ที่ “ตัวตน” สามารถหรือไม่สามารถเรียกใช้ได้
  • cmd เป็นคำสั่งที่ “Identity” สามารถหรือไม่สามารถเรียกใช้ “เป็นเป้าหมาย” ค่าเริ่มต้นคือโปรแกรมทั้งหมด แต่คุณสามารถระบุโปรแกรมเฉพาะในฟิลด์นี้ได้
  • อาร์กิวเมนต์ เป็นอาร์กิวเมนต์เฉพาะสำหรับคำสั่งที่คุณระบุ

ตัวอย่างเช่น การเขียนสิ่งต่อไปนี้จะทำให้ผู้ใช้ในกลุ่มล้อดำเนินการคำสั่งในฐานะรูทได้ รูทเชลล์จะยังคงอยู่จนกว่าหน้าต่างจะปิด

permit persist :wheel as root

คุณยังสร้างกฎที่กำหนดเป้าหมายผู้ใช้เฉพาะสำหรับคำสั่งเฉพาะได้อีกด้วย ตัวอย่างเช่น คุณสามารถใช้กฎต่อไปนี้เพื่ออนุญาตให้ผู้ใช้ "bob" เรียกใช้โปรแกรม "apt" เป็น root โดยไม่ต้องถามรหัสผ่านใดๆ

permit nopass bob as root cmd apt

ในกรณีของฉัน ฉันต้องการให้กลุ่ม “วงล้อ” ทำงานเป็นรูทโดยไม่ต้องใช้รหัสผ่าน ฉันไม่ต้องการให้ผู้ใช้ aga ซึ่งเป็นส่วนหนึ่งของกลุ่ม wheel รันคำสั่งใด ๆ ในฐานะ root ดังนั้นฉันจะเขียนสิ่งต่อไปนี้ใน “/etc/doas.conf” ของฉัน:

permit nopass :wheel as root
deny aga as root
Doas คืออะไรและจะติดตั้งอย่างไร

หลังการกำหนดค่า

หลังจากนั้น คุณต้องรันคำสั่งสองสามคำสั่งเพื่อให้แน่ใจว่า doas ทำงานตามที่ตั้งใจไว้ ขั้นแรก คุณจะต้องตั้งค่าเจ้าของ doas.conf เป็นรูทอย่างถูกต้อง:

sudo chown -c root:root /etc/doas.conf

คุณจะต้องตั้งค่าการอนุญาตไฟล์ของไฟล์การกำหนดค่าเป็น 0644 เพื่อให้แน่ใจว่าไฟล์จะสามารถเข้าถึงได้โดยผู้ใช้รูทเท่านั้น

sudo chmod -c 0644 /etc/doas.conf

สุดท้าย คุณจะต้องตรวจสอบ doas เองเพื่อหาข้อผิดพลาดทางไวยากรณ์ภายในการกำหนดค่า ในการดำเนินการนี้ ให้เรียกใช้คำสั่งต่อไปนี้:

sudo doas -C /etc/doas.conf && echo "OK" || echo "ERROR"
Doas คืออะไรและจะติดตั้งอย่างไร

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

คำถามที่พบบ่อย

1. การกำหนดค่าของฉันดูเหมือนจะไม่ทำงาน ฉันได้เพิ่มกฎสำหรับผู้ใช้เฉพาะและกฎทั่วไป แต่กฎสำหรับผู้ใช้ดูเหมือนจะไม่ทำงาน

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

2. เป็นไปได้ไหมที่จะเก็บ sudo และ doas ไว้ในระบบเดียวกัน?

ใช่! Doas และ sudo เป็นสองโปรแกรมที่แตกต่างกัน พวกเขาไม่ขัดแย้งกันเอง และเป็นการดีที่จะปล่อยให้ sudo อยู่ในระบบและใช้ doas

3. เป็นไปได้ไหมที่จะได้รับรูทเชลล์โดยใช้ doas?

ใช่ หากคุณได้กำหนดค่าไฟล์การกำหนดค่าของคุณอย่างถูกต้องแล้ว คุณสามารถเริ่มต้นรูทเชลล์ได้ด้วยการเรียกใช้ doas -s .