0

我的朋友有某种管理面板,他在其中显示来自多个服务器的信息。他正在使用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,但我发现更接近的是检索帐户磁盘使用情况。但我需要来自以 root 身份在 ssh 中运行的“df”命令的信息。什么是更容易和最安全的方法?因为我需要从多台服务器而不是从运行代码的服务器获取 df 命令输出。

4

1 回答 1

0

为什么需要以“root”身份运行 df?我当然可以在我的 Linux 机器上以自己的身份运行它?(是的,这是一个问题,而不是一个答案)

假设您对机器具有完全访问权限,您可能会设置一个用户帐户“df”,它在 sudoers 中列出,带有!authenticate属性(因此它可以在没有密码的情况下执行 sudo),然后ssh df@${machine} sudo df 您还可以限制 sudo 以便 df“用户可以只做df,而不做,例如rm -rf /adduser blah

当然,将您的 ssh 设置为使用公钥/私钥挑战,而不是使用您的 php 代码在源代码中设置密码 - 如果没有别的,因为它使其更灵活,并且您不必更新源代码您决定更改密码。

于 2012-12-20T23:36:48.053 回答