簡體   English   中英

如何使用Ruby的File.open命令編輯* nix系統文件?

[英]How to edit a *nix system file using Ruby's File.open command?

在我的CMS中(Rails 4),我需要讓用戶在CIFS掛載點上進行CRUD進程。 為了在CentOS(6)系統上進行永久CIFS掛載,我需要編輯/etc/fstab文件並使用sudo mount -a命令更新掛載列表。 當我嘗試使用File.open打開/etc/fstab文件時:

File.open("/etc/fstab", "a") do |f|
  f.puts "\n test"
end

我收到此錯誤:

Errno::EACCES: Permission denied - /etc/fstab

這是正常的,因為/etc/fstab文件屬於root用戶。 有沒有辦法以超級用戶身份打開文件? 另一方面,我願意接受不同的想法。 我的要求是從應用程序內部編輯fstab文件。

在ruby論壇中查看以下答案

使用以下命令啟動腳本

 sudo ruby myscript.rb 

您無法在腳本中間獲得root特權

 system("sudo ruby anotherscript.rb") 

這很棘手,但是您可以將Web用戶添加到sudoers列表中,並在嘗試編輯文件時提交sudo密碼。 確保通過https保護您的連接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM