2014-03-03 69 views
1

在我的CMS(Rails 4)中,我需要讓用戶在CIFS掛載點上進行CRUD處理。爲了在CentOS(6)系統上擁有永久的CIFS安裝,我需要編輯/etc/fstab文件並使用sudo mount -a命令更新安裝列表。當我嘗試打開/etc/fstab文件,File.open如何使用Ruby的File.open命令編輯* nix系統文件?

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

我得到這個錯誤:

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

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

回答

1

請參閱本answer在紅寶石論壇:

Start your script using

sudo ruby myscript.rb 

You can't gain root privileges mid-script, short of

system("sudo ruby anotherscript.rb") 
+0

加密如果我需要在該腳本中使用動態參數? :\我需要使用'params [:path]'參數。 – scaryguy

+0

'system(「sudo ruby​​ anotherscript.rb#{params [:path]}」)',http://stackoverflow.com/a/4244651/1120015 –

0

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

相關問題