[英]Reading a file as sudo from Ruby on Rails
令人驚訝的是,我沒有發現有人試圖這樣做,這就是我提出這個問題的原因。
事情是我有一個文件,我在其中存儲了一些數據。 我想在我的 Rails 項目中有一個選項,您可以在其中“導出”此文件中定義的一些對象。
該文件屬於 root,所以如果我嘗試使用 File.read("myfile.json") 讀取它,它會失敗並出現此錯誤:
#<Errno::EACCES: Permission denied @ rb_sysopen - /opt/rb/etc/cep/state.json>
有沒有辦法讓我以 root 身份讀取它? 也許解決方案是從 ruby 作為命令運行“sudo cat myfile.json”並將結果注入變量?
我的目標是將此文件的內容放入用戶將要下載的另一個文件中,以便稍后他可以上傳此文件並擁有之前的所有對象。 沒有看到更多人嘗試這樣做很奇怪,所以我不知道我是否在問一些愚蠢的事情。 我在谷歌中沒有找到關於此的信息,也許無法使用 File.open 打開文件作為 sudo。
快速解決它的一個簡單方法是更改文件的所有者。
sudo chown $USER myfile.json
如果你想訪問一個文件,我認為給你的應用程序 sudo 訪問權限不是一個好主意。 這是潛在的危險。
您可以通過更改文件的所有者/組來更改文件的權限。
在這里您可以找到如何讓用戶運行應用程序。
此命令將更改文件的所有者
sudo chown <my_user> /opt/rb/etc/cep/state.json
另一種選擇是使用當前所有者和 rails 用戶創建一個組並將該組設置為所有者:
sudo groupadd mynewgroup
sudo usermod -a -G mynewgroup <my_user>
sudo usermod -a -G mynewgroup <current_user>
sudo chgrp mynewgroup /opt/rb/etc/cep/state.json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.