Trong một cấu hình điển hình, lệnh không liên quan. Bạn cần nhập mật khẩu của bạn lần đầu tiên bạn sử dụng sudo và bạn không cần mật khẩu của mình trong vỏ cụ thể đó trong 15 phút tiếp theo.
Từ góc nhìn của máy tính, không có lệnh nào giống như lệnh mà cần sudo. Bất kỳ người dùng có thể cố gắng để chạy bất kỳ lệnh. Kết quả có thể không có gì ngoài một thông báo lỗi, chẳng hạn như Perm Perm Perm bị từ chối, hoặc Không có tập tin hoặc thư mục nào như vậy, nhưng luôn có thể chạy lệnh.
Ví dụ: nếu bạn chạy du
trên cây thư mục có nội dung mà bạn không có quyền truy cập, bạn sẽ gặp lỗi về quyền. Đó là những gì mà sự cho phép của người Viking đã từ chối. Nếu bạn chạy sudo du
, sudo chạy du
dưới quyền root, do đó bạn không gặp phải lỗi cấp phép (đó là điểm của tài khoản root: root¹ luôn có quyền). Khi bạn chạy sudo du
, du
chạy như root và hoàn toàn sudo
không liên quan sau khi du
đã bắt đầu. Việc du có gặp phải lỗi cấp phép hay không hoàn toàn không liên quan đến cách thức hoạt động của sudo.
Có những lệnh cần sudo để làm một cái gì đó hữu ích . Hữu ích là một khái niệm của con người. Bạn cần sử dụng sudo (hoặc một số phương thức khác để chạy lệnh dưới dạng root) nếu lệnh thực hiện điều gì đó hữu ích khi chạy bằng root chứ không phải khi chạy dưới tài khoản của bạn.
Cho dù sudo yêu cầu mật khẩu của bạn phụ thuộc vào hai điều.
- Dựa trên cấu hình, sudo quyết định xem bạn có cần xác thực hay không. Theo mặc định, sudo yêu cầu mật khẩu. Điều này có thể được tắt theo nhiều cách, bao gồm đặt
authenticate
tùy chọn thành false và có quy tắc áp dụng với NOPASSWD
thẻ.
- Nếu sudo yêu cầu mật khẩu của bạn, nó có thể là nội dung để sử dụng một giá trị được lưu trữ. Điều đó ổn vì lý do sudo cần mật khẩu của bạn không phải là để xác thực người gọi nó (sudo biết người dùng đã gọi nó là gì), nhưng để xác nhận rằng đó vẫn là bạn trong các lệnh chứ không phải ai đó kiểm soát bàn phím của bạn. Theo mặc định, sudo sẵn sàng tin rằng bạn vẫn ở trong các lệnh nếu bạn đã nhập mật khẩu của mình dưới 15 phút trước (điều này có thể được thay đổi với
timeout
tùy chọn). Bạn cần phải nhập mật khẩu trong cùng một thiết bị đầu cuối (để nếu bạn vẫn đăng nhập trên một thiết bị đầu cuối thì hãy để thiết bị đầu cuối đó không giám sát và sau đó sử dụng thiết bị đầu cuối khác, ai đó có thể 'tty_tickets
¹ gần, nhưng điều đó vượt ra ngoài phạm vi của chủ đề này.