プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております。

特定のフォルダにコピーされたデータが自動的に処理された後に消えていく処理がサーバー上で動いています。いわば待ち行列のような性質をもったサーバー上の共有フォルダです。

いままでは特定のユーザしかフォルダへのコピーを行わなかったため、ファイル名の重複による上書きが発生して、処理されるべき内容が漏れてしまったということはありませんでした。

フォルダへのコピー処理を複数のユーザに開放しようとすると、ファイル名が重複する可能性、さらには無意識のうちに上書きコピーをしてしまう可能性も高まることが予想されます。

フォルダを分割してバッチファイルでユニークにしてから対象のフォルダに送るという処理を定期的に行ったとしても、分割されたフォルダ内で重複が起こってしまえば解決にはなりません。

対象のサーバーはWindows2012なので、上書きか名前を変えて保存するかの選択が出来るのですが、「ファイルの情報を比較」したうえで、両方のファイルにチェックを入れて「続行」というステップを経るため、間違いも起きやすいと思われます。

願わくば、自動的に両方を残す、というような設定ができれば有難いのですが、どうもそうしたポリシーは見つかりません。

アプリ上で作るファイルならば、作成時に重複チェックしてから書きこむなどいかようにも処理ができますが、扱うファイルが外部から来たファイルで、扱うのがコンピュータ操作に長けてない人も含まれるため、困っています。

同様のケースに遭遇した方がおられましたら、お知恵を頂きたいと思います。

A 回答 (2件)

いくつか解決策があります。


「防ぐ」ということは何を意味するかによって手段が変わります。

1)バージョン管理する
「ファイル履歴」のようなものを導入する。
戻すときは、管理者が個別にファイルを戻すことになります。

2)上書き承認する
gitのようなイメージで、上書きするときはレビューを必要とする

自動的に複数ファイルを作るというものが思いつかないのですが、そもそも上書き禁止にしちゃえば別名で保存しないといけないので、そうするのがいいのでしょうか。
    • good
    • 0
この回答へのお礼

dyna_1550さん。早々にコメント頂きまして有難うございました。

本当であれば、上書き禁止でエラーになれば気が付いてリネームして貰えればよいのですが、上書き禁止属性にするための事前処理(ファイルのプロパティでリードオンリーにする)自体をもれなくさせるのは無理と考えています。
かと言って、フォルダ自体に上書き禁止属性をしてしまうと、今度はコピー自体が出来なくなってしまうし。

スケジューラで定期的にフォルダ内のファイルに上書き禁止属性を立てるなんてこと位しか思い浮かびません。(-_-;)

gitは本格的に使ったことは無いのですが、利用者にgitクライアントを入れる必要があることと、GUIインタフェイスのものですら、日常の運用には特にシステム開発者以外には敷居が高いような気がします。
意識せずに使えるようなものなのでしょうか?

お礼日時:2021/10/14 11:33

No1です



設計の常とう手段としては、以下だと思います。
・権限をちゃんと定義し、適切に権限を付与する
・バックアップを設定し、「ここまでは戻れる」というポイントを設定する

問題点は、「上書きしてはいけない人がしてしまう」(間違ってというのは理屈にならない)

間違いまでカバーしたいのであれば、「ロールバックできるようにする」だと思います。ようは、「ファイル履歴」をとれるように仕組みを変更する。

物理的なファイルサーバーは、仕組みを構築する必要があると思います。
フリーであれば、ownCloudなどで構築することができます。
    • good
    • 0
この回答へのお礼

お返事遅れて失礼しました。

履歴を取る、というのは大がかりな話になり、そこまでの知識はないので、コピーした時に、重複チェックを行い、同じ名前がある時に(2)(3)といった名前を後ろに付ける、というスクリプトを作ることにしました。スクリプトの引数をファイル名にして、コピー元をそのスクリプトのアイコンにドラッグするとチェックが動くような仕組みにできるかな、と思って作ったらなんとか動きました。

どうもアドバイス有難うございました。

お礼日時:2021/10/21 16:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!