我正在编辑一个区域文件/var/named/rpz.local
,需要在完成以下命令后重新加载rndc:
cd /var/named
rndc reload rpz.local
一切都是伟大的,以root用户,但问题是,我不能运行/usr/sbin/rndc
的nginx(PHP)。所以你能不能给我点提示给予?
我可以运行这个:
$Output = shell_exec("uptime");
print($Output);
但是如果我运行这个命令,输出为null:system('rndc reload');
或shell_exec('rndc relad');
我似乎无法访问rndc
,因为我甚至无法运行:rndc status
altough如果我运行这个:
system(`uptime`); // Sun Aug 20 22:36:51 +0330 2023
$Test = shell_exec(`rndc status`); // return nothing
print($Test);
system('uptime');// 00:28:03 up 18 days, 10:47, 2 users, load average: 0.00, 0.02, 0.05
我有uptime
和uptime
命令的结果。但是没有shell_exec('rndc reload')
。我也做了下面的命令,但它没有工作:
setfacl -m u:nginx:rwx rpz.local
setfacl -m u:nginx:rwx /usr/sbin/rndc
2条答案
按热度按时间o4tp2gmn1#
一切都是伟大的,以root用户,但问题是我不能运行我不能运行
/usr/sbin/rndc
的nginx(PHP)。所以你能不能给我点提示给予?有关root用户的角色及其用途,请参阅操作手册。然后相应地管理系统。
简而言之:只有你能以root身份做一些事情,这并不意味着你应该在PHP内部做。明白为什么。真的真的
如果你不能,联系一个负责的系统管理员,他知道你正在使用的系统,并一个人对一个人地阐明需求。
gcuhipw92#
这个问题已经解决了。如何?我得到了
NULL
当试图运行rndc
命令.如前所述,this post我将命令改为:所以我就这么做了
问题就解决了
非常感谢您的评分
P.S如@hake所提到的,我们将nginx作为sudoer运行或将nginx添加到sudoer组中是错误的,因此不要出错,尽管调试和测试(1-2小时不多)是可以的。