我想在遠程服務器上執行R腳本。我有一個腳本運行,並將在服務器上運行...但作爲一個安全功能,我想禁用文件操作(think file.create(),file.remove()等)在R中禁用文件操作?
這是可能?是否有一行我可以放在腳本的頂部,或者更好,我可以添加到命令行調用,這將允許該文件能夠從本地csv文件讀取,但不能寫入/修改/刪除任何?
我想在遠程服務器上執行R腳本。我有一個腳本運行,並將在服務器上運行...但作爲一個安全功能,我想禁用文件操作(think file.create(),file.remove()等)在R中禁用文件操作?
這是可能?是否有一行我可以放在腳本的頂部,或者更好,我可以添加到命令行調用,這將允許該文件能夠從本地csv文件讀取,但不能寫入/修改/刪除任何?
考慮鎖定服務器文件夾以進行只讀訪問而不是腳本級指令。
:而在Windows中,這可以在安全選項卡下的文件夾的屬性(右鍵菜單),您甚至可以候訪問權限(允許/拒絕)由不同的用戶羣體做只有寫拒絕的用戶,任何file manipulation method將引發一個警告或FALSE價值,但不是錯誤:
file.create("C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt")
# [1] FALSE
# Warning message:
# In file.create("C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt") :
# cannot create file 'C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt', reason 'Permission denied'
file.rename("C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt",
"C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt")
# [1] FALSE
file.copy("C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt",
"C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt")
# [1] FALSE
# Warning message:
# In file.create("C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt") :
# cannot create file 'C:\\Path\\To\\Read-Only\\Folder\\NewFile.txt', reason 'Permission denied'
而且用戶仍然可以讀取文件沒有任何錯誤:
con <- file(description="C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt", open="r")
close(con)
df <- read.table("C:\\Path\\To\\Read-Only\\Folder\\CurrentFile.txt")
中實施此類限制。謝謝。這有助於。問題是,我正在使用專用於自動化的服務器。有沒有辦法在R腳本調用期間在命令行上調用這種類型的東西?文件仍然需要能夠寫入其他作業,我只是想要限制它,只要這個動作被調用。 – user3739091
或者這是一種可以在操作系統端專門爲R做的事情嗎? – user3739091
考慮用代碼中的if語句有條件地包裝動作。用戶運行腳本可能沒有管理權限來限制讀/寫權限。你也不想離開應用程序來處理文件系統訪問和安全性。 – Parfait
通常你會與操作系統方面的權限處理這個問題。我不認爲有一個可行的方式在R. – Roland