Nút VPN hoạt động với quản trị viên và thất bại với mọi người khác, nên ai đó thêm một dòng vào sudoers. Dòng đó thường sống lâu hơn vấn đề mà nó định giải quyết, và thường cấp nhiều hơn mức nút cần. Trước khi sửa chính sách, hãy kiểm tra xem chủ sở hữu được hỗ trợ của kết nối đã có thể làm việc đó chưa. Ba điều kiện dưới đây quyết định sudo có liên quan hay không.

Điều kiện 1: chủ sở hữu được hỗ trợ có thể làm mà không cần sudo

Trên hầu hết màn hình Linux, trình quản lý mạng đã sở hữu các kết nối VPN, và việc cấp quyền đi qua polkit chứ không phải sudo. Người dùng được phép nâng một kết nối có thể làm việc đó từ dòng lệnh mà không cần quy tắc root nào. Hãy kiểm tra trình quản lý cho phép gì trước khi cho rằng nút cần đặc quyền. Nếu câu trả lời là có, thay đổi trong sudoers đang giải quyết một vấn đề không tồn tại.

nmcli connection show
nmcli connection up "Work VPN"

Nếu trình quản lý từ chối, hãy đọc lý do: thiếu quy tắc polkit, kết nối thuộc về người dùng khác hoặc hồ sơ được lưu ở nơi người dùng không thể đọc. Mỗi trường hợp đều có cách sửa được hỗ trợ, hẹp hơn một quy tắc sudo. Nâng đặc quyền là phương án cuối cùng, không phải đầu tiên.

Điều kiện 2: quy tắc nêu một tệp thực thi và các đối số của nó

Nếu thực sự cần sudo, quy tắc nên nêu chính xác lệnh và khi có thể là các đối số được phép dùng. Một quy tắc cho phép người dùng chạy tập lệnh bao chỉ an toàn bằng quyền của tập lệnh đó, vì người dùng có thể sửa nội dung root sẽ chạy. Quy tắc có ký tự đại diện sau lệnh là cùng vấn đề ở dạng ngắn hơn.

sudo -l -U alice
ls -l /usr/local/sbin/vpn-up

Kiểm tra mọi đường dẫn trong chuỗi lệnh: tệp nhị phân, tập lệnh nó gọi, tệp cấu hình nó đọc và mọi thư mục ở giữa. Nếu người dùng ghi được vào bất kỳ mục nào, quy tắc giới hạn thực tế là root không giới hạn. Đối số cũng quan trọng, vì lệnh nhận đường dẫn cấu hình có thể bị trỏ tới tệp do người dùng kiểm soát. Hãy viết quy tắc cho thao tác, không phải cho cái nút.

Dừng lại nếu lệnh cần một tệp do người dùng kiểm soát để hoạt động. Khi đó thiết kế sai, và không cú pháp sudoers nào làm nó an toàn.

Điều kiện 3: toàn bộ chính sách được phân tích, không chỉ dòng của bạn

Kiểm chứng bằng trình soạn thảo khóa tệp và kiểm tra cú pháp, và kiểm chứng chính sách đã lắp ghép chứ không phải một mảnh. Một tệp tự phân tích vẫn có thể phá thứ tự bao gồm hoặc nhân đôi quy tắc theo cách làm thay đổi hành vi.hướng dẫn visudo ghi lại cả trình soạn thảo khóa và chế độ chỉ kiểm tra được dùng ở đây.

sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher

Việc kiểm tra báo tệp và dòng khi thất bại, và chính báo cáo đó là phần hữu ích. Hãy sửa thay đổi dự định qua trình soạn thảo thay vì cưỡng chế lưu một lỗi đã biết, vì chính sách hỏng có thể khóa tất cả quản trị viên cùng lúc. Các tệp trong thư mục bao gồm cũng cần quyền sở hữu và chế độ mà hướng dẫn yêu cầu, nếu không chúng sẽ bị bỏ qua hoặc từ chối. Cú pháp chỉ là cổng đầu tiên: sau khi qua, hãy đọc lại quy tắc và hỏi nó thực sự cho phép gì.

Dừng lại nếu cách duy nhất để thay đổi hoạt động là tắt kiểm tra cú pháp. Đó không phải chính sách, đó là sự cố đang chờ khởi động lại.

Phục hồi: giữ một phiên vẫn còn hoạt động

Trước khi lưu, hãy chắc rằng một phiên quản trị được cấp quyền đã mở và có đường thứ hai vào máy. Một lỗi trong sudoers có thể lấy mất khả năng sửa nó của bạn, và một nút trên màn hình không đáng với rủi ro đó. Nếu sudo đã hỏng, hãy dùng đường phục hồi được ghi trong tài liệu của hệ thống thay vì tự chế một đường.

sudo -n true
id

Các lựa chọn thay thế như pkexec phụ thuộc vào bản cài đặt và chính sách riêng của chúng, nên chúng không phải lời nhắc root thứ hai được bảo đảm. Cũng hãy tách cấp quyền cục bộ khỏi việc cung cấp bí mật VPN: quy tắc sudo không mở khóa được một tác nhân bí mật vắng mặt, và nó không đáp ứng MFA của cổng. Sau khi sửa, hãy thử tài khoản thường chỉ thực hiện thao tác dự định, rồi dùng các điều khiển thông thường của trình quản lý.

Quyết định kết thúc khi bạn nói được điều kiện nào biện minh cho sudo, quy tắc nêu những gì, toàn bộ chính sách được phân tích, và bạn sẽ phục hồi thế nào nếu không. Một trình khởi chạy đặc quyền khiến bạn mất quyền truy cập quản trị là một trao đổi tồi, và thường có thể tránh được.

Bài viết liên quan