GIẢI PHÁP 1: newgrp
Một cách đơn giản để giải quyết trường hợp sử dụng của bạn sẽ là sử dụng :NOPASSWD
kết hợp với mật khẩu nhóm và nhóm:
Thêm một dòng để sudoers:
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
Tạo một nhóm được bảo vệ qua mật khẩu:
groupadd rudo
gpasswd rudo # Enter passwd
Bây giờ khi bạn đăng nhập với tư cách là người dùng không có quyền (giả sử bạn chưa có trong rudo
nhóm), hãy đăng nhập vào rudo
nhóm, tại thời điểm đó bạn sẽ được nhắc nhập mật khẩu.
login user
newgrp rudo
Bây giờ bạn có thể chạy sudo
mật khẩu ít hơn, miễn là bạn vẫn đăng nhập vào nhóm.
GIẢI PHÁP 2: runaspw
Một cách tốt hơn, có thể an toàn hơn để làm điều này sử dụng runaspw
. runaspw
được liên kết với runas_default
tùy chọn để bạn cũng phải thêm tùy chọn đó.
Giả sử bạn đã có %sudo
mục nhập nhóm mặc định :
%sudo ALL=(ALL:ALL) ALL
thêm các dòng này vào tập tin sudoers:
Defaults:%sudo runas_default=sudo
Defaults:%sudo runaspw
Bây giờ thêm sudo
người dùng mới bằng mật khẩu:
useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo
Bây giờ người dùng nhóm sudo sẽ được nhắc về mật khẩu của người dùng sudo nhưng chỉ người dùng trong nhóm sudo mới có thể sudo (không giống như giải pháp nhóm ở trên, nơi bất kỳ ai trong nhóm hoặc với nhóm mật khẩu đều có thể sudo).
Một vấn đề nhỏ là người dùng runas mặc định bây giờ sudo
vì vậy để sudo là root, bạn cần xác định rõ ràng root:
sudo -u root <cmd>
Nhưng đủ dễ để xác định một lệnh bí danh ( alias sudo='sudo -u root'
) hoặc lệnh sudo gián tiếp.