Ruby CLI:提示输入 root 密码并继续以 root 身份执行脚本?

发布于 2024-12-05 03:53:36 字数 151 浏览 1 评论 0原文

除了要求用户通过 sudo 调用 ruby​​ 脚本之外,还有一种方法可以开始以普通用户身份运行脚本,然后在运行时的某个时刻,通过提示用户将权限提升到 root他们的 root 密码?

也许类似于使用当前命令以 sudo 为前缀的 #exec

Other than requiring the user to invoke a ruby script through sudo, is there a way to start running a script as a regular user, then at some point during runtime, elevate privileges to root, by prompting the user for their root password?

Maybe something along the lines of #exec using the current command prefixed with sudo?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

软甜啾 2024-12-12 03:53:36

这有效。它只是使用 exec 再次调用自身(在本例中为 test_script)。但要非常小心,确保它不会通过添加调用 exit 的条件来无限运行。

#!/usr/bin/env ruby

if ARGV[0] == "--second"
  puts "...called again and exiting."
  exit
end

puts "Calling self again..."
exec "sudo ./test_script --second"

This works. It just uses exec to call itself (test_script in this case) again. But be very careful to make sure that it doesn't run infinitely by adding a condition which will call exit.

#!/usr/bin/env ruby

if ARGV[0] == "--second"
  puts "...called again and exiting."
  exit
end

puts "Calling self again..."
exec "sudo ./test_script --second"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文