Ruby CLI: запросить пароль root и продолжить выполнение скрипта от имени root? - PullRequest
1 голос
/ 19 сентября 2011

Помимо необходимости, чтобы пользователь вызывал скрипт ruby ​​через sudo, есть способ запустить скрипт как обычный пользователь, а затем в какой-то момент во время выполнения повысить привилегии до root, запрашивая у пользователя его пароль root?

Может быть, что-то вроде #exec с использованием текущей команды с префиксом sudo?

1 Ответ

2 голосов
/ 21 сентября 2011

Это работает.Он просто использует 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"
...