Làm thế nào để vô hiệu hóa Yêu cầu cho một lệnh trong sudoers?


44

Tôi muốn vô hiệu hóa Yêu cầu để tôi có thể sudo trong các tập lệnh, nhưng tôi chỉ muốn vô hiệu hóa nó cho một lệnh chứ không phải là tất cả mọi thứ. Có thể trong cấu hình sudoers?

Câu trả lời:


55

Bạn có thể ghi đè cài đặt mặc định cho các tùy chọn, chẳng hạn như requirettycho một người dùng cụ thể hoặc cho một lệnh cụ thể (hoặc cho một người dùng hoặc máy chủ lưu trữ cụ thể), nhưng không phải cho một lệnh cụ thể khi được thực thi như một người dùng cụ thể.

Ví dụ: giả sử requirettyđược đặt trong các tùy chọn biên dịch mặc định, sudoerstệp sau đây cho phép cả hai artbristolbobthực thi /path/to/programvới quyền root từ tập lệnh. artbristolkhông cần mật khẩu trong khi bobphải nhập mật khẩu (có lẽ đã tty_ticketstắt và bobnhập mật khẩu của anh ấy trên một số thiết bị đầu cuối gần đây).

artbristol ALL = (root) NOPASSWD: /path/to/program
bob ALL = (root) /path/to/program
Defaults!/path/to/program !requiretty

Nếu bạn muốn thay đổi cài đặt cho một lệnh với các đối số cụ thể, bạn cần sử dụng bí danh lệnh (đây là giới hạn cú pháp). Ví dụ, đoạn sau cho phép artbristolchạy /path/to/program --optiontrong một tập lệnh, nhưng không phải /path/to/programvới các đối số khác.

Cmnd_Alias MYPROGRAM = /path/to/program --option  
artbristol ALL = (root) /path/to/program
artbristol ALL = (root) NOPASSWD: MYPROGRAM
Defaults!MYPROGRAM !requiretty

31

Một cái gì đó như thế này:

myuser    ALL=(ALL)    NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser        !requiretty

Điều này có thể hoạt động /etc/sudoersnhưng dường như không hoạt động trong một /etc/sudoers.d/tệp
8bitjunkie

Đối với những gì nó có giá trị, đối với tôi, chỉnh sửa này đã hoạt động khi được thêm vào một /etc/sudoers.d/tập tin. CentOS 7.1
John Erck

Nó không hoạt động đối với tôi khi sử dụng /etc/sudoers.d/. CentOS 7.5 :(
Stefan Lasiewski

4

Tôi thấy nó hoạt động tốt cho tôi bằng cách sử dụng một tập tin trong /etc/sudoers.d. Nó khá đơn giản để xác minh.

Đầu tiên, tôi tạo ra /etc/sudoers.d/01buildvới nội dung:

build    ALL=(ALL)    NOPASSWD:/bin/date
Defaults:build !requiretty

Sau đó thử nghiệm rằng nó hoạt động:

ssh host sudo -n /bin/date
Mon Nov 16 16:04:27 CST 2015

Sau đó, tôi sửa đổi /etc/sudoers.d/01buildvà xóa Defaults:dòng, và sau đó, tôi nhận được:

ssh host sudo -n /bin/date
sudo: sorry, you must have a tty to run sudo
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.