【问题标题】:What is the best way to change a user-password remotely in Unix?在 Unix 中远程更改用户密码的最佳方法是什么?
【发布时间】:2008-09-30 10:07:18
【问题描述】:

在 Unix 中远程更改用户密码的最佳方法是什么? 这必须由用户在 Web 应用程序或 Windows 应用程序中执行,而不使用 SSH 或用户与服务器之间的任何直接连接(不允许直接命令行)。

谢谢


Webmin 似乎是一个很好的应用程序,但我发现很难正确配置它。我的 Unix 用户无法登录到 Webmin 或 Usermin。

您知道 Webmin 和 Usermin 的其他替代品吗?

谢谢

【问题讨论】:

  • 客户端和服务器之间没有直接连接?但是您仍然希望客户端更改服务器上的某些内容吗?这将如何运作?
  • 已修复。对任何误解深表歉意;)

标签: unix change-password


【解决方案1】:

使用Webmin(更具体地说是UserMin 模块)。

Webmin 提供了一个迷你网络服务器,因此您只需要稍微安装和配置它。您将获得的不仅仅是更改密码,还可以删除您不希望用户拥有的功能。

【讨论】:

    【解决方案2】:

    @Rich 布拉德肖

    请确保您没有引入安全问题。该解决方案应使用 https 加密(密码不应以明文形式发送)。应该保护它免受 shell 注入攻击(从输入中删除任何换行符,正确转义等)。更多细节取决于选择的实现。

    【讨论】:

      【解决方案3】:

      我过去曾这样做过,通过使用用 Expect 编写的脚本一次更改多台服务器上的密码。它非常适合这项工作,但您需要服务器通过 SSH 进行监听。

      编写完成后,脚本将在您的本地工作站上执行,并连接到远程主机,进行您编写的交互,然后您就应该是金牌了。一直以来,如果您正在运行 SSH,则使用您已经信任的加密。只是不要将密码保存在脚本中:您应该能够提示自己输入密码(即使通过命令行参数获取密码通常也被认为是不好的做法。)

      Expect 也是一门很棒的语言:很有趣!

      【讨论】:

        【解决方案4】:

        您可以编写一个运行 passwd 的服务器端脚本,您可以使用任何允许运行 shell 命令的语言来执行此操作。

        【讨论】:

        • 如果你写了一个脚本来在远程主机上运行 passwd,你还不如在它上面执行 passwd:你没有解决“远程”问题。此外,像您通过其他服务(例如 HTTPS)提议的那样公开脚本似乎存在安全风险。
        • 任何可以与 Apache 一起使用的服务器端脚本语言都可以解决这个问题,并且如果编码正确,不会比 Webmin 带来更多的安全风险。 PHP、Ruby、Perl
        猜你喜欢
        • 2020-12-17
        • 2011-05-20
        • 2011-07-16
        • 1970-01-01
        • 2022-01-25
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 2017-08-02
        相关资源
        最近更新 更多