- Trên Ubuntu 26.04 LTS, khi chạy lệnh
sudo, phản hồi trực quan bằng dấu sao (*) cho mỗi ký tự mật khẩu nhập vào sẽ được bật mặc định
- Tính năng này khả thi nhờ việc áp dụng sudo-rs được viết lại bằng Rust, và Canonical đã chọn nó làm sudo mặc định từ Ubuntu 25.10
- Một số người dùng phản đối vì rủi ro làm lộ độ dài mật khẩu, nhưng đội ngũ phát triển nhấn mạnh rằng rủi ro là rất nhỏ và thay đổi này giúp nhất quán với màn hình đăng nhập
- Để khôi phục cách cũ, chỉ cần thêm
Defaults !pwfeedback vào tệp sudoers là có hiệu lực ngay
- Thay đổi này là một phần trong quá trình hiện đại hóa hệ thống của Ubuntu 26.04, cùng với GNOME 50, Linux kernel 7.0, coreutils dựa trên Rust
Lịch sử nhập mật khẩu sudo
- Năm 1980, tại Đại học SUNY Buffalo, Bob Coggeshall và Cliff Spencer đã phát triển
sudo đầu tiên
- Khi đó, terminal thường là môi trường dùng chung, nên để ngăn “nhìn trộm qua vai” (shoulder surfing), mọi ký tự nhập đều bị ẩn hoàn toàn
- Thiết kế này sau đó được duy trì gần 46 năm trên hầu hết các bản phân phối Linux lớn
- Linux Mint là bên đầu tiên thử thay đổi khi bật phản hồi trực quan theo mặc định trong cấu hình riêng của mình
- Trong khi đó, các bản phân phối lớn như Ubuntu vẫn giữ cách nhập im lặng truyền thống trong thời gian dài
sudo-rs và quá trình thay đổi của Ubuntu
-
sudo-rs** là phiên bản triển khai** viết lại hoàn toàn sudo vốn dựa trên C bằng Rust
- Canonical đã thay thế sudo mặc định bằng nó trong Ubuntu 25.10, nhưng từ góc nhìn người dùng thì hành vi vẫn như cũ
- Tháng 2/2026, upstream của sudo-rs đã hợp nhất bản vá bật
pwfeedback mặc định
- Canonical đưa thay đổi này vào bản dựng phát triển của 26.04, làm bùng lên tranh luận trong cộng đồng
- Dòng thời gian chính
- 1980: sudo nguyên bản ra đời, mặc định nhập im lặng
- Tháng 10/2025: Ubuntu 25.10 áp dụng sudo-rs
- Tháng 2/2026: hợp nhất bản vá bật
pwfeedback mặc định
- 23/4/2026: dự kiến phát hành Ubuntu 26.04 LTS, mặc định hiển thị dấu sao
Hai phía của tranh luận bảo mật
-
Lập luận của bên chỉ trích
- Việc hiển thị dấu sao làm lộ độ dài mật khẩu, từ đó làm suy yếu mô hình bảo mật trước đây
- Đã có báo cáo lỗi cho rằng thay đổi này “phá vỡ một biện pháp bảo mật mang tính lịch sử”
-
Phản biện từ phía nhà phát triển
- Trên thực tế, rủi ro từ việc lộ độ dài mật khẩu là rất nhỏ; nếu đứng đủ gần, người ta cũng có thể đoán qua tiếng gõ phím hoặc chuyển động tay
- Mật khẩu sudo của đa số người dùng cũng chính là mật khẩu đăng nhập, và trên màn hình đăng nhập thì các ký tự đã được hiển thị bằng dấu chấm (dot)
- Vì vậy, việc chỉ giữ terminal ở trạng thái im lặng chẳng qua chỉ là “security theatre”
- Tóm tắt so sánh
| Hạng mục |
sudo cũ (im lặng) |
sudo-rs + pwfeedback |
| Phản hồi trực quan |
Không có |
Hiển thị dấu sao theo từng ký tự nhập |
| Lộ độ dài mật khẩu |
Không |
Có |
| Tính nhất quán với màn hình đăng nhập |
Không khớp |
Khớp |
| Trải nghiệm người dùng mới |
Dễ bối rối |
Có thể xác nhận đang nhập |
| Phiên SSH |
Im lặng |
Vẫn hiển thị dấu sao |
| Có thể khôi phục hay không |
— |
Có (!pwfeedback) |
Cách khôi phục kiểu cũ
- Mở tệp
sudoers bằng lệnh sudo visudo rồi thêm một dòng sau
Defaults !pwfeedback
- Lưu lại, thay đổi có hiệu lực ngay trong phiên terminal mới
- Không cần khởi động lại hệ thống
Hiện đại hóa trên Ubuntu 26.04
- Thay đổi lần này là một phần trong quá trình hiện đại hóa hệ thống tổng thể của Ubuntu 26.04 LTS “Resolute Raccoon”
- Bao gồm GNOME 50 (chỉ dùng Wayland), Linux kernel 7.0, và coreutils dựa trên Rust (uutils/coreutils)
- Canonical đang thúc đẩy việc áp dụng Rust để tăng cường an toàn bộ nhớ và trải nghiệm người dùng hiện đại
- Tranh cãi quanh việc hiển thị dấu sao của sudo-rs tượng trưng cho xung đột giữa triết lý Unix truyền thống và UX hiện đại
- Người dùng luôn có thể quay lại cách cũ chỉ với một dòng cấu hình
- Giá trị mặc định được quyết định theo hướng ưu tiên “đa số người dùng thích dấu sao hơn là những người mới hoang mang trước màn hình trống”
- Ubuntu 26.04 LTS dự kiến phát hành chính thức vào ngày 23/4/2026 và hiện vẫn đang trong quá trình phát triển
- Gói sudo-ws hiện tại không bị ảnh hưởng bởi thay đổi
pwfeedback này
6 bình luận
Nếu việc để người khác có thể nhìn trộm và đoán được độ dài mật khẩu là một lỗ hổng bảo mật nghiêm trọng, thì tại sao lại không bắt buộc tất cả bàn phím dùng để truy cập terminal Linux phải có tấm che chống nhìn trộm? Chỉ cần nhìn vào bàn phím, hoặc quay lại bằng camera giấu kín là xong mà.
Nếu đến mức có thể nhìn lén qua vai mà thấy được điều đó, thì có lẽ nên lo hơn về việc chính các ngón tay đang gõ cũng bị nhìn thấy...
Ở khoảng cách như vậy thì thậm chí còn có thể ghi âm âm thanh để đếm xem có bao nhiêu ký tự nữa.
Nếu an ninh là mối lo lớn và quan trọng đến thế, thì nên dùng khóa bảo mật vật lý chứ.
Khi người dùng đăng nhập qua terminal thì mật khẩu không được hiển thị, và ngay cả với ssh truy cập từ xa thì mật khẩu cũng không bị lộ. Từ sudo, su, passwd, ssh cho đến đăng nhập terminal, chưa từng có cái nào hiển thị mật khẩu. Chỉ riêng màn hình đăng nhập GUI là được hiển thị theo cách khác. Ngược lại, thay đổi lần này lại càng phá vỡ tính nhất quán hơn nữa.
Ý kiến trên Hacker News
Có thể chọn cấu hình ẩn hoàn toàn mọi dấu hiệu trực quan khi nhập mật khẩu
Trên KDE, thêm
ShowPasswordEcho=falsevào/etc/sddm.conf.d/hide-password.confrồi khởi động lại,với
sudo, thêmDefaults !pwfeedbackvào/etc/sudoers.d/password-no-visual-echo,trên GNOME thì cần sửa
unlockDialog.js, đổi thànhset_password_char('')hoặcecho_char=nullrồi khởi động lạiKhi dùng kết nối SSH độ trễ cao, nhiều lúc rất khó biết liệu lúc nhập
sudophím có thực sự ăn hay khôngLại còn dính cả VPN và xác thực IAM nên thậm chí không chắc mật khẩu mới đã được áp dụng chưa
Trong tình huống như vậy, tính năng phản hồi khi nhập mật khẩu có vẻ thực sự hữu ích. Sẽ còn tốt hơn nữa nếu Red Hat áp dụng nó
Nếu UI khi đó khác đi thì có lẽ tôi đã dùng Linux sớm hơn nhiều
Dù không an toàn nhưng lúc đó cũng không có ai nhìn trộm qua vai
sudo, mà nên cấu hình tài khoản nopassword và xác thực bằng khóa công khaiMàn hình đăng nhập macOS cũng cần được sửa
Ô nhập mật khẩu quá hẹp nên dù nhập mật khẩu dài cũng không có phản hồi nào
Nếu bàn phím không ổn định thì quá trình đăng nhập cực kỳ khó chịu
Mật khẩu dài 18 ký tự nhưng chỉ hiện đến ký tự thứ 13 nên tôi tưởng việc nhập đã bị treo. Kết quả là mất 30 phút mới đăng nhập được
Dù vẫn lộ độ dài mật khẩu nhưng với người dùng thì phản hồi nhập liệu rất rõ ràng
Có thể xem thảo luận liên quan tại Security StackExchange
Sẽ hay nếu có một **bản đùa hiển thị chuỗi hài hước thay cho ***
Ví dụ như hiện ra mật khẩu giả kiểu “iloveyouiloveyou”, “12345612345”
Tôi nghĩ đây thực sự là một thay đổi rất tốt
Ban đầu có thể hơi bối rối nhưng sẽ quen nhanh, và trên thực tế hầu như không ảnh hưởng lớn đến bảo mật
Dấu nhắc im lặng đã che giấu điều đó, nhưng dù sao thì mật khẩu một ký tự cũng vô nghĩa
Giờ chuyện đó ít quan trọng hơn, và nếu muốn thì vẫn có thể chuyển lại về chế độ im lặng
Cuối cùng thì ý nghĩa lớn hơn nằm ở cải thiện UX hơn là bảo mật
Việc có phản hồi cho thao tác gõ là tốt, nhưng có lẽ một cách khác sẽ hay hơn là chỉ ánh xạ 1:1
Ví dụ, xsecurelock cho phản hồi bằng cách làm di chuyển các chấm trên một đường khi người dùng nhập
Cách này vẫn giữ được cảm giác đang nhập mà không làm lộ độ dài mật khẩu
Với
sudo, có thể đạt hiệu ứng tương tự bằngDefaults !pwfeedbackTrên thực tế, nếu tấn công với quyền truy cập vật lý đã khả thi thì thường cũng đã có nhiều cách khác để xâm nhập, nên tôi xem đây chủ yếu là một cải tiến UX
Khi nhập sai mật khẩu, việc không biết phải xóa bao nhiêu ký tự thật sự rất bực bội, và tính năng này giải quyết đúng vấn đề đó
Có lẽ chỉ cần cung cấp hành vi mới này dưới dạng tùy chọn là đủ
Nếu đổi mặc định thì khi stream và nhập
sudo, độ dài mật khẩu có thể bị lộHơn nữa, chỉ nghe tiếng bàn phím cũng có thể đoán được độ dài
Hơn nữa, đang phát sóng mà phải dùng
sudocũng là chuyện hiếmCần có văn hóa quay đi chỗ khác khi ai đó đang nhập mật khẩu
Ngược lại, nếu nhìn thấy dấu nhắc nhập mật khẩu trên màn hình của người khác thì bản thân cũng nên tự quay mặt đi
Nếu mỗi lần nhập hiện một ký tự quay vòng như
/ - \\ |thì có lẽ vừa tạo phản hồi nhập liệu vừa che được độ dàiKhi xóa cũng giảm theo cùng quy tắc, nên vẫn có phản hồi nhưng lại gây nhiễu về độ dài
Việc
sudomặc định ẩn mật khẩu là tàn dư từ thời terminal dùng chung và máy in giấy (tty)Ngày xưa, nội dung nhập vào thực sự được in ra giấy nên cần phải ẩn vì lý do bảo mật
Còn bây giờ thì trong hầu hết môi trường điều đó không còn là vấn đề, và 1% người dùng vẫn có thể đổi lại bằng cấu hình
Tôi phản đối điều này.
Bắt chước Mac, đổi thứ đang yên đang lành sang Rust
Hôm nay cũng lại thế này nữa à.