8 cách tinh chỉnh và cấu hình Sudo trên Ubuntu
Giống như hầu hết mọi thứ trên Linux, lệnh sudo rất có thể cấu hình. Bạn có thể có sudo chạy các lệnh cụ thể mà không yêu cầu mật khẩu, hạn chế người dùng cụ thể chỉ các lệnh được phê duyệt, các lệnh đăng nhập chạy với sudo và hơn thế nữa.
Hành vi của lệnh sudo được kiểm soát bởi tệp / etc / sudoers trên hệ thống của bạn. Lệnh này phải được chỉnh sửa bằng lệnh visudo, thực hiện kiểm tra cú pháp để đảm bảo bạn không vô tình phá vỡ tệp.
Chỉ định người dùng có quyền Sudo
Tài khoản người dùng bạn tạo trong khi cài đặt Ubuntu được đánh dấu là tài khoản Quản trị viên, có nghĩa là nó có thể sử dụng sudo. Bất kỳ tài khoản người dùng bổ sung nào bạn tạo sau khi cài đặt đều có thể là tài khoản Quản trị viên hoặc Người dùng chuẩn - Tài khoản người dùng chuẩn không có quyền sudo.
Bạn có thể kiểm soát các loại tài khoản người dùng bằng đồ họa từ công cụ Tài khoản người dùng của Ubuntu. Để mở nó, nhấp vào tên người dùng của bạn trên bảng điều khiển và chọn Tài khoản người dùng hoặc tìm kiếm Tài khoản người dùng trong dấu gạch ngang.
Làm cho Sudo quên mật khẩu của bạn
Theo mặc định, sudo nhớ mật khẩu của bạn trong 15 phút sau khi bạn nhập nó. Đây là lý do tại sao bạn chỉ phải nhập mật khẩu một lần khi thực hiện nhiều lệnh với sudo liên tiếp. Nếu bạn chuẩn bị cho người khác sử dụng máy tính của mình và bạn muốn sudo hỏi mật khẩu khi nó chạy tiếp theo, hãy thực hiện lệnh sau và sudo sẽ quên mật khẩu của bạn:
sudo -k
Luôn hỏi mật khẩu
Nếu bạn muốn được nhắc mỗi lần bạn sử dụng sudo - ví dụ: nếu người khác thường xuyên có quyền truy cập vào máy tính của bạn - bạn có thể vô hiệu hóa hoàn toàn hành vi ghi nhớ mật khẩu.
Cài đặt này, giống như các cài đặt sudo khác, được chứa trong tệp / etc / sudoers. Chạy lệnh visudo trong một thiết bị đầu cuối để mở tệp để chỉnh sửa:
sudo visudo
Mặc dù tên của nó, lệnh này mặc định là trình soạn thảo nano thân thiện với người dùng mới thay vì trình soạn thảo vi truyền thống trên Ubuntu.
Thêm dòng sau bên dưới các dòng Mặc định khác trong tệp:
Mặc định timestamp_timeout = 0
Nhấn Ctrl + O để lưu tệp, sau đó nhấn Ctrl + X để đóng Nano. Sudo bây giờ sẽ luôn nhắc bạn nhập mật khẩu.
Thay đổi thời gian chờ mật khẩu
Để đặt thời gian chờ mật khẩu khác nhau - thời gian dài hơn như 30 phút hoặc ngắn hơn như 5 phút - hãy làm theo các bước trên nhưng sử dụng một giá trị khác cho timestamp_timeout. Số tương ứng với số phút sudo sẽ nhớ mật khẩu của bạn. Để sudo nhớ mật khẩu của bạn trong 5 phút, hãy thêm dòng sau:
Mặc định timestamp_timeout = 5
Không bao giờ yêu cầu mật khẩu
Bạn cũng có thể yêu cầu sudo không bao giờ yêu cầu mật khẩu - miễn là bạn đã đăng nhập, mọi lệnh bạn có tiền tố với sudo sẽ chạy với quyền root. Để thực hiện việc này, hãy thêm dòng sau vào tệp sudoers của bạn, trong đó tên người dùng là tên người dùng của bạn:
tên người dùng ALL = (ALL) NOPASSWD: ALL
Bạn cũng có thể thay đổi dòng% sudo - nghĩa là dòng cho phép tất cả người dùng trong nhóm sudo (còn được gọi là người dùng Quản trị viên) sử dụng sudo - để tất cả người dùng Quản trị viên không yêu cầu mật khẩu:
% sudo ALL = (ALL: ALL) NOPASSWD: ALL
Chạy các lệnh cụ thể mà không cần mật khẩu
Bạn cũng có thể chỉ định các lệnh cụ thể sẽ không bao giờ yêu cầu mật khẩu khi chạy với sudo. Thay vì sử dụng TIẾNG VIỆT, sau khi NOPASSWD ở trên, hãy chỉ định vị trí của các lệnh. Ví dụ: dòng sau sẽ cho phép tài khoản người dùng của bạn chạy các lệnh apt-get và shutdown mà không cần mật khẩu.
tên người dùng ALL = (ALL) NOPASSWD: / usr / bin / apt-get, / sbin / shutdown
Điều này có thể đặc biệt hữu ích khi chạy các lệnh cụ thể với sudo trong tập lệnh.
Cho phép người dùng chỉ chạy các lệnh cụ thể
Mặc dù bạn có thể liệt kê các lệnh cụ thể và ngăn người dùng chạy chúng bằng sudo, nhưng điều này không hiệu quả. Ví dụ: bạn có thể chỉ định rằng tài khoản người dùng không thể chạy lệnh tắt máy với sudo. Nhưng tài khoản người dùng đó có thể chạy lệnh cp bằng sudo, tạo một bản sao của lệnh tắt máy và tắt hệ thống bằng cách sử dụng bản sao.
Một cách hiệu quả hơn là liệt kê các lệnh cụ thể trong danh sách trắng. Ví dụ: bạn có thể cấp quyền cho tài khoản người dùng Chuẩn để sử dụng các lệnh apt-get và shutdown, nhưng không còn nữa. Để làm như vậy, hãy thêm dòng sau, trong đó người dùng chuẩn là tên người dùng:
Standarduser ALL = / usr / bin / apt-get, / sbin / shutdown
Lệnh sau sẽ cho chúng ta biết những lệnh nào người dùng có thể chạy với sudo:
sudo -U tiêu chuẩn -l
Đăng nhập truy cập Sudo
Bạn có thể đăng nhập tất cả truy cập sudo bằng cách thêm dòng sau. / var / log / sudo chỉ là một ví dụ; bạn có thể sử dụng bất kỳ vị trí tệp nhật ký nào bạn thích.
Mặc định logfile = / var / log / sudo
Xem nội dung của tệp nhật ký bằng một lệnh như thế này:
mèo sudo / var / log / sudo
Hãy nhớ rằng, nếu người dùng có quyền truy cập sudo không hạn chế, người dùng đó có khả năng xóa hoặc sửa đổi nội dung của tệp này. Một người dùng cũng có thể truy cập một dấu nhắc gốc bằng sudo và chạy các lệnh sẽ không được ghi lại. Tính năng ghi nhật ký hữu ích nhất khi được kết hợp với tài khoản người dùng bị hạn chế quyền truy cập vào một tập hợp con các lệnh hệ thống.