Tôi đang cố gắng sử dụng lệnh sudo và tệp sudoers một cách chính xác để tôi có thể chạy một lệnh như một người dùng khác.
Tôi có tập tin sudoers của tôi được thiết lập như sau:
beans ALL = (root,apache) NOPASSWD: /opt/renovations/var/script-*.sh
gốc, apache, và đậu là một phần của nhóm đậu.
Ngoài ra / opt có 755 quyền, trong khi thư mục / opt / đổi mới và thư mục con của nó được sở hữu bởi người dùng và nhóm bean.
Lệnh tôi đang cố chạy như đậu là:
sudo -n -u apache -i /opt/renovations/var/script-test.sh
-n: là vì vậy tôi không được nhắc nhập mật khẩu, vì điều này sẽ được điều hành bởi một cron
-u: là để tôi có thể mạo danh người dùng apache
-i: để tôi mô phỏng thông tin đăng nhập và .profile của tôi Nó đã nạp đầy. Tôi cần điều này để tôi truy cập các biến môi trường trong .profile.
Vấn đề là khi tôi chạy lệnh sudo, tôi nhận được thông báo sau:
sudo: xin lỗi, mật khẩu là bắt buộc để chạy sudo
Tôi đã thử chạy cả hai trên AIX và Ubuntu, nhưng vấn đề là ở cả hai hệ thống. Điều này hoạt động nếu tôi chạy:
sudo -n -u apache /opt/renovations/var/script-test.sh
Nhưng không có -i, môi trường của tôi không chứa tất cả các biến môi trường mà tôi cần ở đó.
Có điều gì tôi cần cập nhật trong tập tin sudoers của mình để điều này là có thể không?
beans ALL = (root,apache) NOPASSWD: /usr/bin/ksh -c /opt/renovations/var/script-*.sh
và beans ALL = (root,apache) NOPASSWD: /usr/bin/bash -c /opt/renovations/var/script-*.sh
Nhưng bây giờ tôi gặp lỗi mới, ví dụ:ksh: /opt/renovations/var/script-test.sh: cannot execute
visudo -c
trả về (kiểm tra sudoers cho lỗi). Ngoài ra, bạn có thể xác nhận phiên bản đầy đủ của AIX (oslevel -s
) và phiên bản sudo được cài đặt không?