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ư requiretty
cho 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, sudoers
tệp sau đây cho phép cả hai artbristol
và bob
thực thi /path/to/program
với quyền root từ tập lệnh. artbristol
không cần mật khẩu trong khi bob
phải nhập mật khẩu (có lẽ đã tty_tickets
tắt và bob
nhậ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 artbristol
chạy /path/to/program --option
trong một tập lệnh, nhưng không phải /path/to/program
vớ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/01build
vớ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/01build
và 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/sudoers
nhưng dường như không hoạt động trong một/etc/sudoers.d/
tệp