Hai tài khoản VPN, một cổng nối và một biểu tượng màn hình nền kết nối với danh nghĩa người dùng gần nhất. Nguyên nhân thường gặp là trình khởi chạy ghi đè tên người dùng của một hồ sơ dùng chung ngay trước khi kết nối, hoặc một trình tìm kiếm tên hiển thị mà cả hai hồ sơ tình cờ dùng chung. NetworkManager đã phân biệt các hồ sơ bằng UUID, nên biểu tượng có thể chỉ đúng một trong số đó và để yên danh tính. Thứ nó không nên mang theo là mật khẩu.

Trình khởi chạy là một con trỏ, không phải kho thông tin xác thực.

Tìm UUID và xác nhận danh tính

Liệt kê các kết nối đã lưu và đọc UUID, ID kết nối cùng tên người dùng mà mỗi hồ sơ lưu giữ. Xác nhận hồ sơ nào thuộc tài khoản nào trước khi tạo bất cứ thứ gì, vì tên hiển thị là nhãn chứ không phải khóa. Nếu hai tài khoản cần cổng nối khác nhau hoặc hồ sơ khác nhau, đó là một việc cấu hình riêng.

Dùng UUID trong trình khởi chạy. Tra cứu theo tên hiển thị chỉ hoạt động cho đến khi ai đó đổi tên một hồ sơ, và khi đó biểu tượng sẽ kết nối với tài khoản sai hoặc không kết nối gì cả.

Viết mục màn hình nền

Một mục màn hình nền cần kiểu, tên và dòng thực thi. Lệnh phải đưa UUID đó lên và để NetworkManager hỏi bí mật, đó là mục đích của nmcli --ask connection up uuid .... Giữ Terminal=true để lời nhắc hiện ra khi cần bí mật. Thay phần giữ chỗ bằng UUID mà bạn thực sự quan sát được, và đừng thêm lớp bọc shell chỉ để giấu lời nhắc.

Đặc tả Desktop Entry định nghĩa Exec là chương trình và các đối số của nó. Đây không phải tập lệnh shell và không cần một tập lệnh như vậy.

Để tác nhân giữ bí mật

Bí mật thuộc về tác nhân theo từng người dùng, vòng khóa hoặc lời nhắc tương tác. Mật khẩu trong Exec hiện ra trong danh sách tiến trình, trong tệp màn hình nền và trong bất kỳ ảnh chụp nào của hộp thoại thuộc tính. Nếu hồ sơ cần bí mật, hãy để lời nhắc được hỗ trợ thu thập nó và tác nhân ghi nhớ nó cho người dùng đó.

--ask mang tính tương tác theo thiết kế. Đây không phải công thức cho tự động hóa không giám sát và không bảo đảm rằng mọi thách thức xác thực hay trình bổ trợ đều có thể viết thành tập lệnh.

Đừng với tới sudo

Quyền sửa đổi hoặc kích hoạt một kết nối là quyền của NetworkManager được cấp qua chính sách của nó, không phải đặc quyền Unix. Chạy trình khởi chạy bằng sudo không trao cho tiến trình vòng khóa của người dùng khác và không khắc phục việc cổng nối từ chối. Trên máy dùng chung, hãy xem lại tài khoản cục bộ nào thấy hồ sơ nào và ai sở hữu từng bí mật; các biểu tượng riêng không tự tạo ra cách ly.

Hai hồ sơ đang hoạt động cho cùng một cổng nối cũng có thể tranh nhau tuyến đường hoặc vi phạm một quy tắc đồng thời. Đó là câu hỏi chính sách, không phải lỗi của trình khởi chạy.

Xác minh toàn bộ thao tác

Kích hoạt trình khởi chạy một lần và xác nhận ba điều: UUID nào đã lên, cổng nối thấy danh tính nào và liệu lời nhắc bí mật có xuất hiện đúng nơi bạn chờ đợi. Nếu kết nối thất bại, hãy giữ thông báo lỗi đầu tiên. Thêm mật khẩu vào dòng lệnh để lối tắt trông tự túc sẽ che giấu lỗi đó và tạo ra vấn đề tồi tệ hơn.

Ghi UUID và ánh xạ tài khoản vào ghi chú của nhóm. Người tiếp theo thay đổi một hồ sơ cần biết biểu tượng nào phụ thuộc vào nó, và chính ghi chú đó giúp việc đổi tên không trở thành gián đoạn.

Bài viết liên quan