gpt4 book ai didi

ruby-on-rails - Ruby 使用不同的用户运行 bash 命令

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:05 40 4
gpt4 key购买 nike

我正在编写一个 Rails 应用程序,它由用户 A 运行。现在有其他一些用户 B,该用户被授权在其他服务器上使用 ssh 并在该服务器上运行一些命令。代码如下:

Net::SSH.start(server, username, :password => password) do |ssh|
ssh.exec("set of commands authorised to B")
end

如何在执行上述任务时将用户更改为 B,然后再返回用户 A。我正在检查 gem popen4 , 但找不到我是否可以用不同的用户启动进程。

最佳答案

在 UNIX 进程模型中,您可以在用户之间切换,但这只有在您以 root 级别访问权限运行时才允许,这对大多数进程来说通常不是一个好主意。

机械过程是:

Process.uid = uid_of_user_b

这雇用了Process.uid=影响更改,但如果您不允许这样做,它将出错。

sudo 工具是一个不错的选择。您可以执行以下操作:

sudo -u user_b command

这将取决于为您的用户正确设置 sudo

关于ruby-on-rails - Ruby 使用不同的用户运行 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30511731/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com