Mật khẩu để thực thi một lệnh với sudo được lưu trong bao lâu?


23

Nếu tôi chạy một lệnh yêu cầu quyền root sudo, tôi sẽ được yêu cầu nhập mật khẩu của người dùng hiện tại. Sau đó một thời gian, nếu tôi thực hiện cùng loại lệnh sudo, tôi sẽ không được hỏi lại mật khẩu. Vì vậy, dự đoán của tôi là mật khẩu được lưu trữ ở đâu đó cho đến khi hết hạn. Thời gian hết hạn này là bao lâu? Có thể cấu hình nó?


1
Chỉ cần fyi, bạn có thể nhắc gia hạn sử dụng sudo -v. Điều này thật tuyệt vời khi đặt ở đầu các tập lệnh chạy các lệnh sudo để bạn được hỏi mật khẩu ngay từ đầu.
valbaca

Lưu ý sudo không thực sự lưu trữ mật khẩu. Sudo thực sự không cần mật khẩu để thực hiện công việc của mình, nó chỉ yêu cầu để xác minh rằng người dùng được phép chạy lệnh đã cho. Về cơ bản, nó lưu trữ thông tin đăng nhập của người dùng trong một khoảng thời gian (dưới dạng "dấu thời gian" đặc biệt, xem câu trả lời hàng đầu), trong thời gian đó, nó không yêu cầu người dùng tự xác minh lại. Mật khẩu không được lưu trữ (lưu trữ), không giống như trình duyệt web hoặc khóa mã hóa.
anthony

Câu trả lời:


20

man 5 sudoersthông báo cho chúng tôi rằng có một tùy chọn timestamp_timeout:

timestamp_timeout

Số phút có thể trôi qua trước khi sudo sẽ yêu cầu một mật khẩu một lần nữa. Thời gian chờ có thể bao gồm một thành phần phân đoạn nếu độ chi tiết phút không đủ, ví dụ 2.5. Mặc định là 5. Đặt giá trị này thành 0 để luôn nhắc nhập mật khẩu. Nếu được đặt thành giá trị nhỏ hơn 0, dấu thời gian của người dùng sẽ không bao giờ hết hạn. Điều này có thể được sử dụng để cho phép người dùng tạo hoặc xóa dấu thời gian của riêng họ thông qua lần lượt là sudo -v và và sudo -k.

Vì vậy, có, nó có thể được cấu hình thông qua /etc/sudoers, và theo mặc định, nó sẽ hết hạn sau 5 phút.


4
và bạn biết, sử dụng visudođể chỉnh sửa sudocấu hình, KHÔNG BAO GIỜ chỉnh sửa /etc/sudoerstrực tiếp.
Carlos Campderrós

2
@ CarlosCampderrós: ​​Đúng vậy. Và (nếu có thể) luôn giữ một vỏ gốc khác mở để ở bên an toàn. :)
Ulrich Schwarz

7

Điều đó phụ thuộc vào cấu hình của bạn. Mặc định trên hầu hết các bản phân phối (và trong nguồn) là 5 phút, nhưng bạn có thể thay đổi nó với timestamp_timeouttùy chọn trong /etc/sudoers. Từ man sudoers:

Số phút có thể trôi qua trước khi sudo sẽ yêu cầu một mật khẩu một lần nữa. Thời gian chờ có thể bao gồm một thành phần phân đoạn nếu độ chi tiết phút không đủ, ví dụ 2.5. Mặc định là 5. Đặt giá trị này thành 0 để luôn nhắc nhập mật khẩu. Nếu được đặt thành giá trị nhỏ hơn 0, dấu thời gian của người dùng sẽ không bao giờ hết hạn. Điều này có thể được sử dụng để cho phép người dùng tạo hoặc xóa dấu thời gian của riêng họ thông qua "sudo -v" và "sudo -k" tương ứng.

Ví dụ: để đặt thời gian chờ cho người dùng christhành 20 phút, hãy thêm đoạn sau vào /etc/sudoershoặc trong một tệp trong /etc/sudoers.d(lưu ý: cả thứ tự quy tắc trong các tệp này thứ tự của các tệp này đều có vấn đề, đảm bảo rằng nó không bị ghi đè bởi một quy tắc được thực hiện sau):

Defaults:chris timestamp_timeout=20
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.