【发布时间】:2016-10-31 06:16:15
【问题描述】:
每次我执行脚本时:
exec('sudo profile status-koneksi',$status);
print_r($status);
它总是什么都不做,我不知道如何调试这个,我的脚本需要root权限,所以我将以下行附加到/etc/sudoers文件:
Cmnd_Alias ANGEL_BEATS = /usr/bin/profile, /usr/bin/socks, /usr/bin/gsm, /usr/bin/gssh, /usr/bin/ping_loop, /usr/bin/restart-openvpn, /usr/bin/sms.py, /usr/bin/sms_gateway, /usr/bin/socks, /usr/bin/ussd.py, /usr/bin/vpn, /usr/bin/wgetui
ab ALL=NOPASSWD: ANGEL_BEATS
%ab ALL=NOPASSWD: ANGEL_BEATS
我该如何解决这个问题?
更新:
按照下面评论的建议,我运行这个脚本:
if(exec("sudo sh /usr/bin/profile status-koneksi 2>&1", $output, $return_var)){ print_r($output); print_r($return_var); }
然后它返回:
Array ( [0] => sudo: no tty present and no askpass program specified ) 1
【问题讨论】:
-
在错误调试模式下像这样执行 if(exec(" sh /path/to/file.sh 2>&1", $output, $return_var)){ print_r($output); print_r($return_var); } 并知道错误
-
您是否尝试将 SUID 添加到您的脚本文件中?
-
@KoalaYeung,对不起,我不明白你的意思,我是 linux 新手,我该怎么做?
-
这个答案可能对stackoverflow.com/a/5711685/5788489有帮助