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?
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:
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 artbristolvà bobthự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
Một cái gì đó như thế này:
myuser ALL=(ALL) NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser !requiretty
/etc/sudoers.d/tập tin. CentOS 7.1
/etc/sudoers.d/. CentOS 7.5 :(
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
/etc/sudoersnhưng dường như không hoạt động trong một/etc/sudoers.d/tệp