Tôi đã thêm một người sử dụng như thế này:sudoers NOPASSWD: sudo: không tty hiện tại và không có chương trình askpass định
$ adduser --system --home /no/home --no-create-home --group --disabled-password --disabled-login testuser
thêm một người dùng vào nhóm:
$ adduser testuser testgroup
thêm dòng để sudoers (visudo):
testuser ALL=(ALL) NOPASSWD: ALL
%testgroup ALL=(ALL:ALL) NOPASSWD: ALL
Khi tôi cố gắng để chạy các script bash với nội dung sau:
#!/bin/sh
sudo -u testuser /usr/bin/php /usr/local/bin/script.php
Nhưng khi tôi chạy kịch bản này, tôi nhận được lỗi trong nhật ký:
sudo: no tty present and no askpass program specified
Edit: requiretty
không có trong file sudoers.
Không phải là quyền 'sudo' về người dùng/nhóm mà bạn đang thay đổi * từ * không phải người dùng bạn đang thay đổi * thành *? Vì vậy, không phải là những dòng cho phép người dùng 'testuser' và nhóm' testgroup' chạy bất kỳ lệnh nào (như bất kỳ ai) mà không có mật khẩu? Bạn không cần phải cho phép người dùng chạy tập lệnh để chạy các lệnh * như * 'testuser' cho những gì bạn muốn? Giả sử đó là những gì bạn có nghĩa là để cho phép? –
@EtanReisner Tôi đã thử nó quá, nhưng vẫn nhận được lỗi tương tự. –
Bạn đã thử * những gì * quá? Chạy 'sudo' làm trình kiểm tra? Cụ thể bạn đã chạy/thử? Người dùng nào đang chạy tập lệnh gốc? –