Buộc sudo nhắc mật khẩu


26

Nếu tôi làm như sau:

sudo su -
//enter password
exit
exit
//login again straight away
sudo su -

Yêu cầu thứ hai của sudo không yêu cầu mật khẩu vì mặc dù tôi đã đăng xuất lại nhưng tôi vẫn trong giới hạn thời gian có nghĩa là tôi không cần phải nhắc lại mật khẩu.

Bởi vì tôi đang thử một số tư nhân mới để đảm bảo chúng hoạt động, điều này thực sự làm tôi chậm lại trong khi tôi chờ thời gian chờ xảy ra.

Có một lệnh tôi có thể chạy để thiết lập lại thời gian chờ?

Nhân tiện, tôi không muốn thay đổi thời gian chờ hoặc ảnh hưởng đến những người dùng khác!


Nếu bạn vẫn không thể buộc sudo nhắc mật khẩu, bạn cũng có thể cần bình luận các quy tắc người dùng đề cập đến "NOPASSWD" nếu chúng có trong /etc/sudoers.d/thư mục. Tôi có dòng #includedir /etc/sudoers.dtrong /etc/sudoersvà mặc dù dòng đó bị vô hiệu hóa bởi một nhận xét nhưng có vẻ như #trước đây includedirkhông được đọc dưới dạng nhận xét!
baptx

Câu trả lời:


40

sudo -kSẽ giết dấu thời gian chờ. Bạn thậm chí có thể đặt lệnh sau đó, nhưsudo -k test_my_privileges.sh

Từ man sudo:

-K Tùy chọn -K (chắc chắn tiêu diệt) giống như -k ngoại trừ việc nó loại bỏ hoàn toàn dấu thời gian của người dùng và không được sử dụng cùng với một lệnh hoặc tùy chọn khác. Tùy chọn này không yêu cầu mật khẩu.

-k Khi được sử dụng bởi chính nó, tùy chọn -k (kill) để sudo làm mất hiệu lực dấu thời gian của người dùng bằng cách đặt thời gian trên nó thành Epoch. Lần sau sudo được chạy, mật khẩu sẽ được yêu cầu. Tùy chọn này không yêu cầu mật khẩu và đã được thêm vào để cho phép người dùng thu hồi quyền sudo từ tệp .logout.

Bạn cũng có thể thay đổi nó vĩnh viễn. Từ man sudoers:

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 sudo -v và sudo -k tương ứng.


2
Hãy cẩn thận sudo -k commandsẽ không xóa thông tin đăng nhập. Nó chỉ bỏ qua các thông tin hiện tại và không lưu trữ chúng.
dùng1346466

Chỉ để thêm vào này. Nếu bạn muốn thay đổi thời gian chờ thời gian, bạn cần chỉnh sửa sudoerstệp với sudo visudo. Sau đó, bạn thêm dòng Defaults timestamp_timeout = 0ở cuối danh sách khác Defaultstrong tệp. Đưa dòng ra một lần nữa để trở lại thời gian chờ "bình thường".
Floris

Câu hỏi tiếp theo của tôi: unix.stackexchange.com/q/416039/26152
UlfR

5

Câu trả lời của Shawn rất hay nhưng có một tùy chọn cấu hình bổ sung có thể hữu ích trong tình huống này.

Từ man sudoers:

tty_tickets

Nếu được đặt, người dùng phải xác thực trên cơ sở mỗi tty. Với cờ này được bật, sudo sẽ sử dụng một tệp có tên cho tty người dùng đã đăng nhập vào thư mục tem thời gian của người dùng. Nếu bị tắt, dấu thời gian của thư mục được sử dụng thay thế.

Cờ này được bật theo mặc định.

Từ man sudo:

Khi tùy chọn tty_tickets được bật trong sudoers, dấu thời gian có độ chi tiết mỗi lần nhưng vẫn có thể tồn tại lâu hơn phiên của người dùng. Trên các hệ thống Linux sử dụng hệ thống tệp devpts, các hệ thống Solaris với hệ thống tệp thiết bị cũng như các hệ thống khác sử dụng hệ thống tệp devfs làm tăng đơn điệu số lượng thiết bị inode khi chúng được tạo (như Mac OS X), sudo có thể để xác định khi nào một tệp tem thời gian dựa trên tty đã cũ và sẽ bỏ qua nó. Quản trị viên không nên dựa vào tính năng này vì nó không có sẵn trên toàn cầu.

Tôi nghĩ nó tương đối mới. Nếu hệ thống của bạn hỗ trợ nó, nếu bạn đăng xuất thì đăng nhập, sudo sẽ yêu cầu lại mật khẩu của bạn. (Tôi cũng có sudo -Ktrong kịch bản đăng xuất shell của mình.)

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.