Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

windowsフォルダの作成(セキュリティ付き)

こんにちは。

J2SE Fileクラスを利用して、
windows環境にディレクトリを作成したいのですが、セキュリティを設定したフォルダを作成したいと思っています。
(windows環境にて、フォルダ選択後、右クリック→セキュリティタブ選択→グループ名またはユーザー名追加、アクセス許可 にて確認できます。)

設定したいセキュリティとしては、たとえば、
 hogeDomain\foo  に対して、フルコントロール
localDomain\foo2 に対して、読み取り
といった設定を想定しています。

Fileクラスのmkdir()や、setReadOnly()では、そこまで細かい設定はできないようです。

どなたか、この要件にふさわしいクラス等ご存知でしたら、教えていただけないでしょうか?

よろしくお願いいたします。

6

回答

81157

閲覧

6件の回答

評価

0

少なくとも現時点ではJavaだけではそういうプラットフォーム依存な事はできないよ。もしやるんだったらJNIで頑張ってください。

評価

0

fugaさん、ありがとうございます。

SEの1.4で
読み取り専用、setReadOnly()が可能なようでしたので、
どこかのapiに、windows依存のセキュリティ管理が拡張されたクラスがあるのでは?
と思ったのですが、甘かったようですね。

スマートではないですが、
ネイティブでやってみようと思います。

評価

0

読み取り専用はWindowsだけの環境ではないです。

評価

0

なんというか・・。

Javaから操作したいと思ったりする気持ちは解るのですけど。。
JavaはVMという上で動いている・・Windowsとかとはまた別の環境?・・というこじ付けみたいな理由付けもできるかもですけど、飽くまでWindowsというシステムの上で(も)動かせるものと考えてもいいのかと。

つまり、Windowsによって管理されたセキュリティの上で、それに従って動いているJavaアプリが存在しているとか。

やろうとしていることは、Windowsに任せることと考えたのでもよいのでは?と思ったりするのですけどね。

そして、もうひとつ
仮にAccess/Security周りのクラスで可能であったとしても、なんかまず(APIリファレンスのでも)セキュリティ関連のページをよく読んで理解された方が良さそうな気が、質問の文面からは感じられたりですけど・・。

今時なセキュリティ周りって、それぞれのOSでの売りのひとつでもあったりすると思うので、VM上で標準化・・とかいうのを実現するのも結構厄介だったりするものではないかと思ったりしますけどね。

何故、Javaからの操作が必要なのか、その絶対度はとか、よく検討してみるのがよいのではないかと。
ネイティブなりなんなりで、実現するとしても、今度はそのJavaアプリのセキュリティ管理は?とか出てきそうな気もしますけど。
作る分にはいいでしょうけど、使う側は?

評価

0

みなさま
どうもありがとうございます。

ある特定のユーザーやグループに対してアクセス権限を付与することは、『読み取り専用』と同じように、OS依存つまり、Windowsだけの機能ではない。
と捉え、探してみたのですが、なかなか難しいですね。
setReadOnly()メソッドも、SE1.2からですか?
そのうち、Fileクラスが拡張されて、アクセス権限操作もサポートされそうな気もしますが、今回は別の仕掛けで解決します。

また、javaからの操作が必要な理由ですが、サーバサイドで、簡易なファイル共有の仕組みを作るため、でした。

ありがとうございました。



評価

0

Windowsで(今はまだまだ標準である)FAT系統のフォーマットでは、アクセス権を設定できません。
MacもOS9までは、アクセス権の設定はなかったように思います。
というのは、基本的にこれらのOSは、シングルユーザで使うことを想定していたからです。

アクセス権がどのOSでも標準であれば、JavaのFileクラスでも最初から用意されていたのではないでしょうか。


とりあえず、今回はネット越しの操作、しかも簡易ということで、ディレクトリやファイルごとのアクセス権をアプリケーションが管理する形で、こと足りませんかね?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。