Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Doas Là Gì Và Cách Cài Đặt

Doas là chương trình leo quyền tương tự sudo. Nó được thiết kế nhẹ và đơn giản nhất có thể. Nó là chương trình leo quyền mặc định cho OpenBSD nhưng cũng có sẵn cho các hệ điều hành UNIX-like khác qua chương trình OpenDoas.

Vấn Đề Với sudo

Quá nhiều năm, sudo trở thành chương trình leo quyền事实上标准 trong thế giới UNIX. Tuy nhiên, điều này có nghĩa sudo phải phục vụ mọi trường hợp sử dụng cho mọi người dùng máy UNIX-like. Cách tiếp cận phát triển chương trình này làm cho sudo trở thành chương trình cồng kềnh, khó hiểu và khó dùng.

Ví dụ, để sửa hành vi sudo, bạn cần chạy lệnh gọi là visudo. Đây là trình tải đặc biệt mở tệp "/etc/sudoers" ở "chế độ an toàn".

Visudo làm vài việc: nó thường xuyên kiểm tra lỗi cú pháp trong "/etc/sudoers" và khóa "/etc/sudoers" để không ai ngoài người dùng hiện tại chỉnh sửa tệp. Những điều này có vẻ hữu ích bề mặt, nhưng visudo là triệu chứng của sự phức tạp tăng dần của sudo.

Điều này có nghĩa cú pháp tệp sudoers đã phức tạp đến mức cần kiểm tra lỗi cú pháp tiềm ẩn. Điều này cũng có nghĩa sudo phải phục vụ cả môi trường đơn người dùng và đa người dùng, do đó cần khóa tệp sudoers cho người dùng hiện tại.

Sudo là chương trình tuyệt vời. Cú pháp cấu hình phức tạp có thể tạo hệ thống quyền phức tạp, có thể hữu ích cho quản trị viên hệ thống giàu kinh nghiệm.

Tuy nhiên, đối với hầu hết người dùng, ta chỉ dùng sudo để chạy shell root cài chương trình và tinh chỉnh hệ thống. Sự phức tạp của sudo, do đó,似乎更像是阻碍而非功能。

Tại Sao Dùng doas?

Ý định của Doas là giải quyết sự phức tạp của sudo. Nó được phát triển cho OpenBSD và nhanh chóng được port sang hầu hết hệ thống Linux. Nó nhằm nhanh, dễ dùng, nhưng cũng đơn giản để bảo trì và an toàn.

Cú pháp doas cũng khác sudo. Cấu hình nó giống viết tiếng Anh thuần túy. Trong sudo, ví dụ, cú pháp cho phép bất kỳ người dùng nhóm wheel thực thi như root không cần mật khẩu là:

%wheel ALL=(ALL) NOPASSWD: ALL

Trong doas, cú pháp dễ hiểu hơn nhiều:

permit nopass :wheel as root

Hơn nữa, doas không cần trình tải đặc biệt như visudo để sửa cấu hình. Người dùng chỉ cần sửa tệp cấu hình bằng bất kỳ trình soạn thảo văn bản nào, và miễn là người dùng có đủ đặc quyền, họ có thể thay đổi cấu hình.

Điều này làm cho doas dễ hiểu và dễ nắm bắt. Cách tiếp cận đơn giản, trực diện của nó trong tạo người dùng và nhóm đặc quyền làm cho quá trình minh bạch và ít lỗi cho người dùng.

Cách Thiết Lập doas Với sudo

Nếu bạn dùng hệ thống Linux, rất có thể bạn đã dùng sudo làm chương trình leo quyền, và điều đó làm cài doas khá đơn giản.

Trên Debian và Ubuntu, cài doas bằng apt:

sudo apt install doas

Trên Arch Linux, dùng pacman:

sudo pacman -Syu opendoas

Với Fedora, dùng dnf:

sudo dnf install opendoas

Trên Void Linux, dùng xbps:

sudo xbps-install opendoas

Trong trường hợp tôi, tôi cài doas trên Void Linux, nên dùng XBPS.

Tệp Cấu Hình doas

Với doas đã cài, bạn có thể sửa tệp "/etc/doas.conf" bằng cách chuyển sang user root dùng su.

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

Su sẽ hỏi mật khẩu root, sau đó nó sẽ mở hoặc tạo tệp cấu hình dùng nano.

Xong, bạn có thể nhận thấy "doas.conf" trống. Điều này hoàn toàn khác so với visudo. Nhưng như đã thảo luận, cấu hình doas khá tầm thường.

Cú Pháp Cấu Hình

Cú pháp cho doas.conf như sau:

permit|deny [options] identity [as target] [cmd command [args ...]]
  • Permit và Deny sẽ đặt xem doas cho phép quy tắc hay không.
  • Options là cấu hình bổ sung cho doas. Tùy chọn hữu ích nhất cho người dùng thường là persist và nopass.
  • Identity là người dùng hoặc nhóm thực thi doas.
  • as target là người dùng mà "Identity" có thể hoặc không thể chạy như.
  • cmd là lệnh mà "Identity" có thể hoặc không thể chạy "as target". Mặc định là tất cả chương trình, nhưng bạn có thể chỉ định chương trình cụ thể ở trường này.
  • args là đối số cụ thể cho lệnh bạn đã chỉ định.

Ví dụ, viết sau sẽ cho phép bất kỳ user trong nhóm wheel thực thi lệnh như root. Shell root cũng sẽ persist cho đến khi cửa sổ đóng.

permit persist :wheel as root

Bạn cũng có thể tạo quy tắc chỉ nhắm user cụ thể cho lệnh cụ thể. Ví dụ, dùng quy tắc sau cho phép user "bob" chạy chương trình "apt" như root không hỏi mật khẩu.

permit nopass bob as root cmd apt

Trong trường hợp tôi, tôi muốn nhóm "wheel" chạy như root không mật khẩu. Tôi cũng không muốn user aga, thuộc nhóm wheel, chạy bất kỳ lệnh nào như root. Vì vậy tôi sẽ viết sau trong "/etc/doas.conf":

permit nopass :wheel as root
deny aga as root

Sau Cấu Hình

Sau đó, bạn phải thực thi vài lệnh để đảm bảo doas hoạt động như ý. Trước hết, cần đặt chủ sở hữu doas.conf thành root:

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

Bạn cũng cần đặt quyền tệp cấu hình thành 0644 để đảm bảo tệp chỉ truy cập được bởi user root.

sudo chmod -c 0644 /etc/doas.conf

Cuối cùng, cần kiểm tra doas cho bất kỳ lỗi cú pháp nào trong cấu hình. Để làm vậy, chạy lệnh sau:

sudo doas -C /etc/doas.conf && echo "OK" || echo "ERROR"

Chúc mừng! Bạn đã cài và cấu hình doas thành công cho hệ thống. Bây giờ bạn có thể dùng doas thay thế sudo hoặc tinh chỉnh doas.conf theo ý thích. Để biết thêm về quản trị hệ thống Linux, đọc bài viết này.

Câu Hỏi Thường Gặp

1. Cấu hình của tôi không có vẻ hoạt động. Tôi thêm quy tắc cho user cụ thể và quy tắc chung nhưng quy tắc cho user không hoạt động.

Tệp cấu hình doas hoạt động từ quy tắc chung nhất xuống quy tắc cụ thể nhất. Để cấu hình hoạt động, bạn cần trước chỉ định quy tắc áp dụng cho tất cả user. Sau đó chỉ định quy tắc nhắm user đơn lẻ dưới đó.

2. Có thể giữ sudo và doas trên cùng hệ thống không?

Có! Doas và sudo là hai chương trình khác nhau. Chúng không xung đột, và để sudo trên hệ thống dùng doas là ổn.

3. Có thể lấy shell root dùng doas không?

Có, miễn là bạn cấu hình đúng tệp cấu hình. Bạn có thể khởi động shell root bằng doas -s.