【问题标题】:Run script as another user without sudo/su privileges以没有 sudo/su 权限的其他用户身份运行脚本
【发布时间】:2011-09-15 21:03:29
【问题描述】:

我正在尝试编写一个脚本,以便一个用户可以调用它并作为另一个用户执行。我认为 setuid 可能能够做到这一点,所以我使用 chmod u+s 启用了 setuid,脚本的所有者是 user1。我将脚本(现在只包含 whoami)称为 user2,它仍然显示 user2 而不是 user1。我怎样才能使它成为 user1。

-- 我的最终结果是我希望一个用户能够调用此脚本并将其 ssh 到另一台服务器并以另一个用户的身份执行命令。

【问题讨论】:

  • 为什么必须以其他用户的身份执行脚本?是不是因为你想使用那个用户的 SSH 密钥来登录服务器?
  • 没错。甚至能够获取该用户的密钥并按照他们的工作方式登录。
  • 你不能只允许实际用户通过将他的 SSH 密钥添加到服务器用户的授权密钥来登录服务器吗?
  • 我宁愿不考虑将密钥推送到 100 多台服务器。
  • 是的,setuid 以所有者的权限而不是他们的身份运行脚本。

标签: ssh sudo setuid su


【解决方案1】:

您可以复制该用户的密钥 (id_rsa) 并在连接到服务器时将其传递给 ssh

ssh -i user1_id_rsa user1@server

但是,从安全角度来看,这是一个相当糟糕的解决方案。正如我在评论中所说,将用户的密钥添加到服务器上的授权密钥是正确的方法,您应该真正研究一下。

【讨论】:

  • 正确,但 user2 通常无权访问 user1 的密钥文件。
【解决方案2】:

听起来您的安全模型中需要第三个用户,该用户可以运行该程序,但在其他方面没有特权。这第三个用户是许多用户的假定身份,因此他们可以在远程服务器上运行该进程。

【讨论】:

    猜你喜欢
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 2019-04-06
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多