【发布时间】:2012-07-14 10:51:27
【问题描述】:
我知道在 shell 脚本中我可以做到这一点:
#!/bin/sh
foo() {
rm -rf /
}
foo # fail
sudo foo # succeed
为了在 ruby 中实现这一点,我现在使用一个单独的脚本文件来存储那些需要 root 权限的操作,然后像 system(['sudo', 'ruby', 'sudo_operations.rb', 'do_rm_rf_root']) 这样调用主脚本。
如果我可以直接调用该函数而不将其分离出来,那就更好了。例如,我想知道这样的事情:
def sudo(&method_needs_root_privilege)
# ...
end
然后我可以这样使用:
sudo do
puts ENV['UID'] # print 0
system('rm -rf /') # successfully executed
end
是否有任何帮助或任何想法来实现这一点?
提前致谢。
【问题讨论】:
标签: ruby linux unix permissions root