我的朋友有一些管理面板,他显示来自多个服务器的信息。他正在使用cPanel XML api来显示多个内容,例如服务器负载平均值,代码如下所示:
include("xmlapi.php");
$conf = simplexml_load_file("servers.xml");
foreach ( $conf->server as $server ) {
$xmlapi = new xmlapi( $server->ip );
$xmlapi->set_debug(1);
$xmlapi->hash_auth( $server->user, $server->accesshash);
$loadavg = $xmlapi->loadavg();
print $server->ip . " - " . $loadavg->one . " - " . $loadavg->five . " - " . $loadavg->fifteen;
}
我一直在阅读wiki,但我发现越接近检索帐户磁盘使用情况。但我需要来自“df”命令的信息在ssh中以root身份运行。 最简单,最安全的方法是什么?因为我需要从多个服务器获取df命令输出,而不是从运行代码的服务器获取。
答案 0 :(得分:0)
为什么需要将df作为“root”运行?我当然可以在我的Linux机器上运行它吗? (是的,这是一个问题,而不是答案)
假设您拥有对该计算机的完全访问权限,您可以设置一个useraccount“df”,它在具有!authenticate
属性的sudoers中列出(因此它可以没有密码sudo),然后{{1} }
您也可以限制sudo,以便df“用户只能执行df,而不是,例如ssh df@${machine} sudo df
或rm -rf /
当然设置你的ssh使用公共/私人密钥挑战而不是使用你的php代码在源代码中拥有密码 - 如果没有别的因为它使它更灵活,你不必更新您决定更改密码的来源。