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

时间:2011-09-19 01:51:29

标签: ruby sudo

除了要求用户通过sudo调用ruby脚本之外,是否有办法以常规用户身份开始运行脚本,然后在运行时的某个时刻,通过提示用户将权限提升为root权限他们的root密码?

使用以sudo为前缀的当前命令可能是#exec的某些内容?

1 个答案:

答案 0 :(得分:2)

这很有效。它只是使用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"