Làm cách nào để thiết lập mật khẩu `sudo` trên Linux?


156

Làm cách nào để sudotruy cập không cần mật khẩu được thiết lập trên các bản phân phối RHEL (Fedora, CentOS, v.v.) hoặc Ubuntu? (Nếu nó giống nhau trên các bản phát hành, điều đó thậm chí còn tốt hơn!)

Cài đặt: thiết bị cá nhân và / hoặc phòng thí nghiệm / đào tạo không liên quan đến truy cập trái phép (nghĩa là các thiết bị nằm trên các mạng không công khai và bất kỳ / tất cả người dùng đều được tin cậy hoàn toàn và nội dung của thiết bị là "vanilla đơn giản") .


1
Câu trả lời từ @Richipal là hành động tốt nhất với nỗ lực ít nhất: có vẻ như các quy tắc sudoers áp dụng theo thứ tự ngược lại.
a1an

2
Các quy tắc @ a1an được áp dụng theo cùng thứ tự như được liệt kê trong tệp sudoers và khi chúng được áp dụng, chúng sẽ ghi đè lên nhau. Do đó, nếu tôi không muốn một quy tắc nào thay đổi, tôi sẽ đặt nó vào cuối tập tin để cuối cùng nó được áp dụng và không thể bị ghi đè.
rsjethani

Câu trả lời:


173

EDIT nhờ bình luận của medina: Theo trang nam, bạn sẽ có thể viết

ALL            ALL = (ALL) NOPASSWD: ALL

để cho phép tất cả người dùng chạy tất cả các lệnh mà không cần mật khẩu.


Để tham khảo, tôi để lại câu trả lời trước:

Nếu bạn thêm một dòng của mẫu

%wheel         ALL = (ALL) NOPASSWD: ALL

tất nhiên /etc/sudoers(bằng cách sử dụng visudolệnh), nó sẽ cho phép mọi người trong nhóm wheelchạy bất kỳ lệnh nào mà không cần cung cấp mật khẩu. Vì vậy, tôi nghĩ rằng giải pháp tốt nhất là đưa tất cả người dùng của bạn vào một nhóm nào đó và đặt một dòng như thế sudoers- rõ ràng bạn nên thay thế wheelbằng nhóm thực tế bạn sử dụng.

Ngoài ra, bạn có thể xác định bí danh người dùng,

User_Alias     EVERYONE = user1, user2, user3, ...

và sử dụng:

EVERYONE       ALL = (ALL) NOPASSWD: ALL

mặc dù bạn sẽ phải cập nhật /etc/sudoersmỗi khi bạn thêm hoặc xóa người dùng.


2
Không ALLhoạt động hơn là *chỉ định tất cả người dùng? Xem ví dụ trong sudoers(5).
medina

1
@medina: vậy thôi, tôi đã bỏ lỡ điều đó khi đọc trang đàn ông. Tôi sẽ chỉnh sửa.
David Z

6
trong Ubuntu, tạo một tệp trong /etc/sudoers.d và đặt các mục này vào đó, sau đó nó sẽ ngăn bạn phải chỉnh sửa sudoers
Xetius

1
Trong CentOS7, mục này theo mặc định, chỉ cần nhận xét.
killjoy

1
Chỉ quản lý để sử dụng nó trong centOS bằng cách sao chép / dán, không thành công mỗi lần nhập trực tiếp cấu hình. Nhưng kết quả có vẻ giống hệt nhau ngoại trừ khoảng trắng ...
MUY Bỉ

96

Tôi đã thử các giải pháp trên không có kết quả. Giải pháp sau đây có hiệu quả với tôi Chỉnh sửa tệp / etc / sudoers và thêm dòng sau

username ALL=(ALL) NOPASSWD: ALL

Điều quan trọng là thêm nó sau dòng cuối cùng cho biết

#includedir /etc/sudoers.d

1
//, Đây có vẻ là cách tốt hơn để làm điều đó, đặc biệt là khi một số ứng dụng nhất định sẽ thêm các quy tắc riêng cho người dùng hệ thống, Richipal. Thông tin thêm về sudoers.d: sudo.ws/man/1.8.13/sudoers.man.html
Nathan Basan

1
//, Bạn có sẵn sàng thêm một số chẩn đoán từ Gearoid Murphy vào câu trả lời của bạn không?
Nathan Basan

1
Cảm ơn đã làm rõ điều này. Việc thêm nó sau dòng #includedir /etc/sudoers.d có vẻ quan trọng trong CentOS 7 trong khi nó có vẻ hoạt động tốt để có dòng sớm hơn trong tệp trong CentOS 6.
dmohr

3
Vấn đề bỏ qua NOPASSWD của% wheel dường như phát sinh từ việc ghi /etc/sudoers.d/USERNAMEđè quyền của NOPASSWD của nhóm. Áp dụng NOPASSWD để /etc/sudoers.d/USERNAMEgiải quyết vấn đề.
lươn ghEEz

1
Lớn lên đến cái này, sau khi bao gồm rất quan trọng
Theodore Howell

27

Tôi đã thử tất cả các câu trả lời trên trang này, không có kết quả hữu ích. Cuối cùng tôi đã tìm ra nó, sử dụng lệnh này để liệt kê các quyền sudo của bạn:

sudo -l

Điều này sẽ cung cấp cho bạn một đầu ra như thế này:

User gmurphy may run the following commands on this host:
    (root) NOPASSWD: ALL
    (ALL) ALL

Điều đó cho thấy rằng tôi được cấu hình với các đặc quyền gốc nhưng tôi vẫn là một phần của một nhóm (quản trị viên) phù hợp với quy tắc sudo mong muốn mật khẩu ("(TẤT CẢ) TẤT CẢ"). Điều này đã buộc sudo nhắc tôi. Quy tắc trong câu hỏi là người dùng quản trị:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Khi tôi nhận xét điều này, tôi có thể sudo mà không cần mật khẩu. Tôi hy vọng điều này được sử dụng cho người khác.


1
À, cảm ơn! Điều này đã khiến tôi phát điên ... trong trường hợp của tôi, người dùng của tôi là một phần của nhóm "sudo" cũng như "admin" (mà tôi đã tạo) và các quyền trên mỗi cái đều khớp với nhau, vì chúng nằm trong trường hợp của bạn . Bây giờ công cụ này hoạt động! :)
neezer

14
Nhận xét một dòng ra là một công cụ cùn. Bạn có thể thích thú khi nghe rằng "sudo đọc tệp sudoers và áp dụng các quyền theo thứ tự từ trên xuống dưới. Vì vậy, dòng cuối cùng trong tệp sẽ ghi đè lên bất kỳ xung đột nào trước đó" theo ubuntuforums.org/showthread.php?t=1132821 - - và điều này làm việc cho tôi.
David J.

10

Trong /etc/sudoersmột ví dụ về điều đó ở phía dưới của tệp:

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

2
mẫu đó không phải của tôi - nhưng cảm ơn!
warren

1
Giống như câu trả lời ngắn gọn của bạn
Ông Pei

6

Có một cách khác để làm điều đó mà không cần chạm vào tập tin sudoers.

  • Chỉnh sửa /etc/pam.d/suvà bỏ ghi chú dòng bên dưới:

    auth           sufficient      pam_wheel.so trust use_uid
    
  • Thêm người dùng vào wheelnhóm.


2

Có một cách khác để làm điều đó mà không cần chạm vào tập tin sudoers.

  • Chỉnh sửa /etc/pam.d/sudovà thêm dòng dưới đây:

    auth đủ pam_wheel.so tin tưởng use_uid
  • Thêm người dùng vào wheelnhóm.

Đạo cụ cho "topdog" và "Daniel Serodio" cho câu trả lời ban đầu liên quan đến "su" thay vì "sudo". Tôi đã sử dụng nó như một tài liệu tham khảo và sao chép một cách đáng xấu hổ, và sửa đổi, bài đăng của họ.


1
Tôi nghĩ thay vì sao chép nguyên văn, sẽ tốt hơn khi ghi có chúng, nhưng hãy rõ ràng về chính xác câu trả lời của bạn khác nhau như thế nào. Tôi cho rằng điều này cho phép không có mật khẩu su, thay vì / cũng như sudokhông có mật khẩu ? Nhân tiện, sự bổ sung của Daniel chỉ là định dạng.
mwfearnley
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.