Làm thế nào để chỉ cấp quyền sudo cho các tệp script cụ thể?


16

Tôi muốn người dùng có quyền sudo (không cần kiểm tra mật khẩu) đối với một vài tập lệnh shell trong một thư mục cụ thể (trong trường hợp của tôi /usr/local/tomcat7/bin), và không ở đâu khác. Cách đơn giản nhất để thực hiện điều này là gì?

Một cái gì đó như thế này /etc/sudoersdường như không hoạt động:

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin

Câu trả lời:


22

Tôi nghĩ rằng bạn gần như ở đó. đặt một /ở cuối thông số thư mục của bạn

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/

Từ trang sudoers man

Thư mục là tên đường dẫn đủ điều kiện kết thúc bằng '/'. Khi bạn chỉ định một thư mục trong Cmnd_List, người dùng sẽ có thể chạy bất kỳ tệp nào trong thư mục đó (nhưng không có trong bất kỳ thư mục con nào trong đó).


Cảm ơn (cho cả hai người trả lời), đã làm cho nó hoạt động! Lưu ý đến bản thân: cần phải gọi trực tiếp các tập lệnh (ví dụ sudo catalina.sh stop) - điều này không hoạt động : sudo sh catalina.sh stop.
Jonik

7

Thêm dấu gạch chéo '/' vào cuối đường dẫn.

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/
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.