2016-12-29 6 views
1

リモートサーバーでRスクリプトを実行します。私はスクリプトを実行し、サーバー上で実行されます...しかし、安全機能として私はファイル操作を無効にしたい(file.create()、file.remove()などを考えて)Rのファイル操作を無効にしますか?

これはですか?可能?スクリプトの一番上に置くことができる行がありますか、コマンドライン呼び出しに追加できる行があります。ファイルがローカルのcsvファイルから読み込めるようになりますが、書き込み/変更はできません/削除しますか?

+4

は、通常はOS側の権限でこれを処理すると思います。そのような制限をRに実装する実現可能な方法はないと思います。 – Roland

答えて

1

スクリプトレベルの指示ではなく、読み取り専用アクセスのためにサーバーフォルダをロックすることを検討してください。

Security Windows Folders

を:また、Windowsには、これはあなたも指名アクセス権限が異なるユーザーグループによって(許可/拒否)することができ、フォルダのプロパティ(右クリックメニュー)の下でセキュリティタブで行うことができます

012:ユーザーのために拒否されただけ 書き込みでは、任意の 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") 
+0

ありがとうございました。これは役に立ちます。問題は、私は自動化専用のサーバーを使用しています。 Rスクリプト呼び出し中にこのようなことをコマンドラインで呼び出す方法はありますか?ファイルはまだ他の仕事のために書くことができる必要があります、私はちょうどこのアクションが呼ばれるたびにそれを制限したかったです。 – user3739091

+0

これは、RのためにOS側で一度行うことができるものですか? – user3739091

+0

コード内に 'if'ロジックを条件にしてアクションをラップすることを検討してください。ユーザー実行スクリプトには、読み取り/書き込み権限を制限する管理者権限がない場合があります。また、ファイルシステムへのアクセスとセキュリティを処理するアプリケーションを残したいというわけでもありません。 – Parfait

関連する問題