【问题标题】:How to check if a user exists on a list of multiple servers?如何检查用户是否存在于多个服务器的列表中?
【发布时间】:2017-02-16 17:11:13
【问题描述】:

我有大约 100 台服务器要检查用户是否存在。 我没有在每台服务器上手动操作,而是尝试编写一个脚本来做到这一点。所以,到目前为止,我已经编写了以下脚本来验证它。

#!/bin/bash
if id user1 >/dev/null 2>&1; then
        echo "user1 user exists"
else
        echo "user1 user does not exist"
fi

我相信我还需要使用脚本对服务器进行 ssh,但请建议是否有更好的方法来执行它。

【问题讨论】:

  • 那100台服务器是Unix吗?还是混合的? (Windows、Unix 等)
  • 另外,不确定在没有 SSH 的情况下是否有安全的方法。我想你可以在这些服务器上公开一个 API,然后有一个可以检查用户是否存在的脚本。如果您想通过 SSH 进行操作,那么如果没有密码,您可以遍历您拥有的所有服务器并执行以下操作:stackoverflow.com/a/14811956/4557537
  • 可以ssh到每台主机而不用每次都输入密码吗?如果是这样,只需将其包装在 for 循环中并使用 if ssh "$host" id user1 ..
  • 所有服务器都是 RHEL7 服务器。并且所有的 id 都有密码。没有密码我无法 ssh

标签: linux bash shell loops sh


【解决方案1】:

“您拥有”表示您是管理员,因此可以使用带有公钥的 root 帐户...只需确保您保持私钥安全并启用无需密码的 ssh 访问。

否则,在所有机器上拥有自己的帐户并通过 ssh 进入每台机器并运行 @that-other-guy 提到的那个 id 命令会更安全。

如果您在每个主机上的 authorized_keys 文件中都有 ssh 公钥,则不需要密码。然后在你的机器上,你的 ssh-agent 维护着你的私钥,这样你只需要输入你的密码一次就可以了。

【讨论】:

    猜你喜欢
    • 2020-08-16
    • 2019-04-16
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多