Thiết lập sudo không mật khẩu trên các bản phân phối Linux


18

Gần đây tôi đã thiết lập cả hai hệ thống Fedora 28 & Ubuntu 18.04 và muốn định cấu hình tài khoản người dùng chính của mình trên cả hai để tôi có thể chạy sudocác lệnh mà không bị nhắc nhập mật khẩu.

Làm thế nào tôi có thể làm điều này trên các hệ thống tương ứng?

Câu trả lời:


28

Điều này khá tầm thường nếu bạn sử dụng nhóm Unix đặc biệt được gọi wheeltrên các hệ thống Fedora. Bạn chỉ cần làm như sau:

  1. Thêm người dùng chính của bạn vào wheelnhóm

    $ sudo gpasswd -a <primary account> wheel
    
  2. Kích hoạt NOPASSWD cho %wheelnhóm trong/etc/sudoers

    $ sudo visudo
    

    Sau đó nhận xét ra dòng này:

    ## Allows people in group wheel to run all commands
    # %wheel        ALL=(ALL)       ALL
    

    Và bỏ ghi chú dòng này:

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

    Lưu tệp này với Shift+ Z+ Z.

  3. Đăng xuất và đăng nhập lại

    LƯU Ý: Bước cuối cùng này là bắt buộc để máy tính để bàn của bạn và mọi trình bao cấp cao nhất tương ứng được thực thi lại cho thấy tài khoản chính của bạn hiện là thành viên của wheelnhóm Unix.


Điều gì sẽ thay đổi nếu thay vì wheelbạn sử dụng bất kỳ nhóm nào khác?
Giacomo Alzetta

@GiacomoAlzetta Thay đổi %wheelnhóm đó.
Barmar

19

Theo truyền thống trên các bản phân phối dựa trên Debian như Debian / Ubuntu / Mint / Kali / Antix, nhóm mặc định cho sudo là, tốt , sudo.

Vì vậy, để thêm sudongười dùng kích hoạt mật khẩu vào hệ thống dựa trên Debian, các bước là:

  1. cài đặt, dựng lên sudo

    Trong Debian, tùy thuộc vào các tùy chọn cài đặt, bạn thường kết thúc mà không sudocài đặt theo mặc định.

    Nếu gói sudokhông được cài đặt (ví dụ: bạn không có /etc/sudoers), hãy chạy với quyền root:

    # apt install sudo
    
  2. Thêm người dùng vào nhóm sudo

    Thêm người dùng vào nhóm sudo, nếu nó chưa có trong nhóm sudo (Ubuntu và các dẫn xuất thêm người dùng được tạo trong cài đặt tự động vào nhóm sudo).

    Khi thiết lập người dùng sudo đầu tiên, bạn phải truy cập người dùng đầu tiên là root:

    # gpasswd -a <primary account> sudo
    

    Khi bạn đã có một sudongười dùng, bạn nên thực hiện bảo mật tốt, để thiết lập những người dùng khác trong nhóm sudo thông qua người dùng đó:

    $ sudo gpasswd -a <primary account> sudo
    
  3. Sửa đổi /etc/sudoersđể thêm chỉ thị NOPASSWD

    Sau đó bạn chỉnh sửa các dòng mặc định trong /etc/sudoerscho sudonhóm với:

    $ sudo visudo
    

    và thay đổi nó từ:

    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL:ALL) ALL
    

    đến:

    # Allow members of group sudo to execute any command, no password
    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. Đăng xuất và đăng nhập lại

    Nếu đăng nhập vào hệ thống, người dùng dự định sau đó phải đăng xuất và đăng nhập để thay đổi người dùng thuộc sudonhóm có hiệu lực.

LƯU Ý: Trong Debian, nhóm wheelthường được sử dụng để hạn chế trong PAM việc sử dụng sucho một nhóm, thay vì sử dụng nó cho sudolệnh như trong các bản phân phối dựa trên RedHat / SuSE.

Theo truyền thống trong các bản phân phối dựa trên Debian, cho sudolệnh bạn sử dụng sudonhóm.


7

Hầu hết các bản phân phối có dòng này trong /etc/sudoers/:

#includedir /etc/sudoers.d

Do đó, một cách dễ dàng để thêm một người dùng là tạo một tệp phù hợp trong /etc/sudoers.d/thư mục; Tôi thường đặt tên cho người dùng được thêm vào:

add_sudoer() {
    if ! test -n "$1"
    then echo "Usage: $0 <user>" >&2; return
    fi

    printf >"/etc/sudoers.d/$1" '%s    ALL= NOPASSWD: ALL\n' "$1"
}

Bạn cũng có thể muốn thêm Defaults:%s !lecture, !authenticate\nvà / hoặc các tùy chọn khác vào tệp.

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.