Tìm kiếm trang web

Tôi đã thử tính năng sudo mới của Windows 11, rồi quay lại phiên bản mã nguồn mở


Khi Microsoft công bố hỗ trợ sudo gốc cho Windows 11, tôi đã rất hào hứng về triển vọng của tính năng giống Linux trên Windows. Sau khi đã xây dựng được môi trường phát triển lý tưởng trên Windows, tính năng này sẽ giúp tôi tiết kiệm rất nhiều thời gian và công sức—cho đến khi nó không thực sự như vậy.

Sau hai thập kỷ phải nhấp chuột phải chọn 'chạy với quyền quản trị' hoặc quản lý nhiều cửa sổ terminal, ý tưởng đơn giản là thêm sudo vào trước bất kỳ lệnh nào nghe thật tuyệt. Tôi đã bật nó lên với giả định rằng sẽ ngừng dùng Gsudo. Tuy nhiên, việc Microsoft triển khai, mặc dù về mặt kỹ thuật có thể hoạt động, nhưng vẫn còn xa mới đạt được những gì Gsudo mã nguồn mở cung cấp.

Lời hứa của sudo trên Windows

Microsoft mượn một tính năng quen thuộc của người dùng cao cấp từ Linux

Việc triển khai sudo của Microsoft đi kèm với những ý định tốt thực sự. Nó cung cấp ba chế độ cấu hình:

  • Cửa sổ mới: Tương tự như hành vi chạy truyền thống
  • Đã tắt nhập liệu: Chạy với quyền quản trị trong cửa sổ hiện tại nhưng không nhận dữ liệu đầu vào
  • Inline: Tương tự lệnh sudo trên Linux, chạy các lệnh với quyền cao trong phiên console hiện tại của bạn.

Chế độ inline là điều mà hầu hết người dùng Linux mong đợi. Bạn nhập sudo kèm theo một lệnh, và nó sẽ chạy với quyền quản trị trong terminal hiện tại của bạn. Bạn nhận kết quả mà không cần rời khỏi luồng làm việc hoặc phải chuyển đổi giữa nhiều terminal. Sử dụng sudo trên Windows hóa ra lại hữu ích hơn tôi nghĩ.

Nhưng những hạn chế trở nên rõ ràng ngay lập tức. Windows sudo chỉ hỗ trợ nâng quyền lên administrator, có nghĩa là bạn không thể chạy lệnh với các người dùng khác như bạn có thể làm với sudo trên Linux. Không có tệp sudoers để kiểm soát ai có thể làm gì. Mỗi lần nâng quyền cũng sẽ kích hoạt một thông báo UAC, điều này hợp lý về mặt bảo mật nhưng làm gián đoạn trải nghiệm liền mạch mà người dùng Linux thường được tận hưởng với việc lưu mật khẩu.

Tính năng này được ẩn sâu trong ứng dụng Cài đặt của Windows. Bạn sẽ tìm thấy nó trong mục Dành cho Nhà phát triển trong cài đặt Hệ thống. Điều này cho thấy Microsoft xem nó như một tiện ích thuận tiện cho nhà phát triển hơn là một công cụ hệ thống cốt lõi.

Gsudo làm được những gì sudo không thể

Bản triển khai mã nguồn mở đã truyền cảm hứng cho sự bổ sung của Microsoft vẫn tốt hơn

Gsudo, giải pháp mã nguồn mở của Gerardo Grignoli, đã cung cấp các tính năng sudo trên Windows từ lâu trước khi Microsoft quyết định hành động. Nó đã được phát triển và sử dụng lâu hơn, điều này có nghĩa là đây là một triển khai trưởng thành hơn. Với các bản cập nhật Windows Terminal của Microsoft âm thầm làm cho nó trở nên tuyệt vời, nó xứng đáng có một triển khai sudo đúng nghĩa.

Đầu tiên, nó cung cấp bộ nhớ đệm thông tin đăng nhập, vì vậy bạn sẽ không phải liên tục nhấp vào các lời nhắc UAC. Bạn cũng có thể cấu hình để nhớ quyền nâng cao trong một khoảng thời gian có thể điều chỉnh.

Sự chênh lệch về tính năng cũng khá đáng kể. Gsudo hoạt động trên Windows 10 và các bản Windows 11 cũ hơn, không chỉ riêng 24H2. Nó hỗ trợ cả lệnh gsudo và sudo (mặc dù trên 24H2), tuy nhiên bạn nên sử dụng gsudo trên Windows 11 24H2 để tránh nhầm lẫn. Gsudo cũng tích hợp một cách mượt mà với PowerShell, CMD, WSL và Windows Terminal. Bạn thậm chí có thể sử dụng nó để nâng quyền toàn bộ phiên một shell hoặc tạo các tab quản trị trong Windows Terminal chỉ với vài chỉnh sửa đơn giản đối với hồ sơ.

Nơi mà gsudo mã nguồn mở vẫn dẫn đầu

Quy trình làm việc nhanh hơn, phản hồi tốt hơn và ít bất ngờ hơn

Ngay cả quy trình cài đặt cũng khác nhau giữa hai hệ điều hành. Bạn có thể bật sudo trên Windows thông qua cài đặt hoặc bằng cách chạy lệnh sau:

sudo config --enable normal

Đó là tất cả. Không có tùy chỉnh và không có tùy chọn nâng cao. Ngược lại, Gsudo được cài đặt chỉ với một lệnh Winget như sau:

winget install gerardog.gsudo

Khi đã cài đặt, nó cung cấp khả năng cấu hình rộng rãi thông qua các tùy chọn dòng lệnh và thậm chí là một tệp cài đặt JSON mà bạn có thể sử dụng để sao chép thiết lập của mình sang các hệ thống khác.

Về trải nghiệm người dùng, Microsoft rõ ràng cho biết rằng chế độ inline của sudo có thể là một "vector leo thang đặc quyền" nếu bị sử dụng sai cách. Chế độ input disabled an toàn hơn, nhưng lại làm mất mục đích của một shell tương tác. Cách tiếp cận của Gsudo có vẻ trưởng thành hơn vì nó sử dụng cùng các cơ chế UAC nhưng thêm các thiết lập mặc định hợp lý và bộ nhớ đệm mà không hy sinh bảo mật để đổi lấy sự tiện lợi.

Việc triển khai của Microsoft về lý thuyết an toàn hơn vì nó không lưu trữ thông tin đăng nhập. Nhưng nó tạo ra một điểm gây trở ngại dẫn đến thói quen xấu. Việc lưu trữ thông tin đăng nhập của Gsudo có thể cấu hình và giới hạn thời gian, cân bằng tốt hơn. Ngoài ra, Gsudo minh bạch về mô hình bảo mật của nó, trong khi các cảnh báo của Microsoft về việc leo thang đặc quyền trong chế độ inline có cảm giác như đang che giấu hạn chế thiết kế.

Tại sao tôi lại quay trở lại

Những sự khó chịu nhỏ tích tụ trong quá trình sử dụng hàng ngày

Việc triển khai sudo của Microsoft đại diện cho một bước tiến quan trọng. Đối với người dùng thông thường thỉnh thoảng cần chạy ipconfig /flushdns hoặc các công cụ dòng lệnh khi Windows gặp sự cố, nó hoàn toàn đáp ứng được nhu cầu và không cần phần mềm bên thứ ba. Thực tế là nó được tích hợp sẵn và có thể bật thông qua một công tắc đơn giản khiến nó dễ tiếp cận với mọi người.

Nhưng khả năng truy cập không đồng nghĩa với quyền lực. Gsudo hiểu rằng người dùng dòng lệnh xây dựng trí nhớ cơ bắp quanh các công cụ của họ. Nó tôn trọng thực tế rằng đôi khi bạn cần nâng quyền cho toàn bộ chuỗi công việc, không chỉ một lệnh riêng lẻ. Nó công nhận rằng việc nhập mật khẩu năm lần trong hai phút không phải là bảo mật — đó là sự phiền phức khiến người dùng quen dần và tắt các tính năng bảo mật.

Thêm vào đó, tính chất mã nguồn mở của Gsudo có nghĩa là nó phát triển theo nhu cầu của người dùng, chứ không phải theo thời gian của các công ty. Khi cộng đồng cần tích hợp PowerShell tốt hơn, nó đã xuất hiện. Khi Windows Terminal trở nên phổ biến hơn, Gsudo đã thích ứng. Việc triển khai sudo của Microsoft hiện tại giống như một tính năng cho có, về mặt kỹ thuật thì có nhưng không đủ cho những người dùng nghiêm túc.

Windows sudo vẫn cảm giác chưa hoàn chỉnh

Một tính năng tiềm năng nhưng cần được hoàn thiện hơn

Nếu bạn là người dùng thông thường tò mò về sudo trên Windows, hãy thử phiên bản tích hợp sẵn trước. Đây là một cách an toàn để làm quen với việc tăng quyền mà không rời khỏi vùng thoải mái của bạn. Nhưng nếu bạn sống trong terminal—nếu quy trình làm việc của bạn liên tục chuyển đổi giữa ngữ cảnh người dùng và quản trị viên, nếu bạn viết script để triển khai, nếu bạn quản lý hệ thống—hãy bỏ qua thử nghiệm và cài đặt Gsudo. Cơ bắp ghi nhớ của bạn sẽ cảm ơn bạn, và năng suất sẽ được cải thiện.

Đôi khi, cộng đồng mã nguồn mở vẫn hiểu nhu cầu của người dùng tốt hơn nhà cung cấp nền tảng. Phần mềm mã nguồn mở có thể không phải lúc nào cũng là lựa chọn tốt hơn, nhưng trong trường hợp này thì chắc chắn là vậy.

Bài viết liên quan