我正在尝试将文件从源复制到目标,但副本失败并且fileutils.rb:1402:in
初始化':权限被拒绝@ rb_sysopen`。
目标文件由root拥有,其中脚本在不同的本地用户下运行。如何以sudo root身份复制?
这是我目前的代码
FileUtils.cp("#{Dir.home}/.user.crt", "#{'/opt/vagrant/embedded/.user.crt'}")
puts "Copied cert file"
遇到错误
fileutils.rb:1402:in `initialize': Permission denied @ rb_sysopen - /opt/vagrant/embedded/.user.crt (Errno::EACCES)
答案 0 :(得分:0)
您可以使用the sudo
gem为单个对象提供sudo访问权限。
require 'sudo'
Sudo::Wrapper.run do |sudo|
sudo[FileUtils].cp("#{Dir.home}/.user.crt", '/opt/vagrant/embedded/.user.crt')
end
这比在提升的权限下运行整个脚本更安全。