• ベストアンサー

JAVAでパーミッションを設定する。

お世話になります。 JAVAでUNIXファイルシステム上のファイルにパーミッションを設定することは可能なのでしょうか? java.security.Permissionクラスなんかをjavadocで見てみたのですが、いまいちピンっと来なかったので。 もし可能であれば、どのクラスのどのメソッドを使えば、実現できるのかを教えてもらえると助かります。 よろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • Harry_
  • ベストアンサー率55% (36/65)
回答No.2

Java プログラムから chmod で行うようなアクセス制御を かけたい、ということでしょうか。 以下、もしそうであれば、ですが、 java.security.Permission クラス(とそのサブクラス)は Java のプログラムに対するアクセス権限を制御するだけで、 OSのもつアクセス制御機能を利用するためのものではありません。 質問されてるようなことを実現したいのであれば、 お勧めはできませんが、 Runtime#exec を使って chmod を実行するしかないと思います。

shigeki-yy
質問者

お礼

回答ありがとうございます。 まさにその通り。chmod をやりたいんです。 でも、おっしゃるとおり、無理な気がしていますが、 もう少し調べてみます。

その他の回答 (1)

  • tekebon
  • ベストアンサー率62% (36/58)
回答No.1

java.io.FilePermissionを使えば扱えそうです 自分の環境がWindowsなので確認できませんゴメンナサイ(^^;

shigeki-yy
質問者

お礼

回答ありがとうございます。 java.io.FilePermissionクラスも見てはいたんですけど、ファイルのオーナーになって、646とか設定できなそうな気がするんですよね…。 もう少し調べてみます。

関連するQ&A

  • sambaのパーミッション設定について

    自宅サーバーでsambaを用いてファイルサーバーを運用しているのですが、sambaのパーミッションについて疑問があります。 疑問(1) : create mask/directory mask パラメータについて マニュアルに、 『作成時に付与されるパーミッションは、 DOS の属性を UNIX のパーミッションに変換することにより生成され、このパラメータとビット単位の AND 演算が行なわれる。 ここで設定されないビットは、 ファイル作成時のパーミッションから削除される。』(一部略) とありますが、 『このパラメータとビット単位の AND 演算が行なわれる』の『AND演算』とはどのような演算を指すのでしょうか。 具体的に教えていただきたいと思っております。 疑問点(2) : force create mode / force directory mode パラメータについて これもマニュアルに、 『Samba によって作成されたファイルのパーミッションに 必ず設定される UNIX のパーミッションビットを指定する。 これは、ファイルの作成時やパーミッションの変更時に、 パーミッションビットに対して、このパラメータの値でビット単位の OR 演算を行なうことで実現される。このパラメータの値がビット単位の OR 演算に用いられるのは、 create mask パラメータの適用後である。』(一部略) とあります。 こちらは『OR演算』とありますが、この『OR演算』についても具体的に教えていただきたいと思います。 初歩的ですが、よろしくお願いいたします。 マニュアル : http://www.samba.gr.jp/project/translation/current/htmldocs/smb.conf.5.html

  • Javaで

    C言語ではUNIX上のコマンドを呼ぶには System("呼びたいコマンド");とすればコマンドがプログラムから呼べたと思います。Javaで同じようにUNIX上のコマンドを呼ぶ関数(メソッドっていうのかな?)はなんですか?

  • パーミッションの設定

    質問1: 通常、フォルダ、HTMLファイル又はPHPファイルをサーバへFTPでアップロードする時は、パーミッションの設定をどのようにすればよいのでしょうか?現時点の構成では、フォルダのパーミッションが765で、全てのファイルのパーミッションが664でもサイト自体は動作はしますが、これでセキュリティ上問題ないですか? 特に「オーナー」と「グループ」のパーミッションというものが何なのだか良く理解できていません。サーバは、レンタルサーバを使用しています。「オーナー」がサーバを借りている自分ということは検討がつくのですが(オーナー=サーバを借りている人ですよね??)、いくら自分がオーナーでも自分が通常のブラウザーから自分のサイトにアクセスした場合、それが一般の人なのかそれともオーナーなのかなんて私のサイトに分かるはずもないと思います。 それでは、オーナーのパーミッションとはどのような時のために設定するのでしょうか?また、グループってだれのことですか? 質問2: ベーシック認証をかけたフォルダー内のパーミッションの設定に関する質問です。 通常、.htpasswd、.htpasswd及びベーシック認証がかかっているフォルダ内のパーミッションは765に設定して、そのフォルダ内のの全てのファイル(.htpasswd及び.htpasswdも含めて)の属性(アクセス権)は604に設定するのですよね? それとも、.htpasswd及び.htpasswdのファイルの属性を604に設定すれば、ベーシック認証がかかっているフォルダ内の他のファイルの属性は604にする必要はないのでしたっけ(664などでも良いのでしたっけ?)? よろしくお願いします。

  • UNIXでのファイル、ディレクトリのパーミッションの初期設定

    こんにちは。今回質問させてもらうのは初歩的なことで、 こんなことをいちいち聞いていたらいつまでたっても上達しない、といわれそうでがお願いします。 UNIXで新しくファイルやディレクトリを作った時に、自動的にパーミッションが設定されますが、 そのパーミッションの初期設定を変更したいのですが、その場合どこを変更したら良いのですか??

  • 各パーミッションの詳細について

    こんばんは。 今回、システムの移行を担当することになりました。(Solaris→HP-UX) 前システムではパーミッションの設定値が同じであるべきファイルやディレクトリのパーミッションがバラバラであったりしていたため、 新システムではこのディレクトリはこのパーミッション、このファイルはこのパーミッション、と綺麗に揃えたいということになりました。 ただ、どういうファイルをどういう設定にしてあげれば良いのか、 各パーミッションでどのような振る舞いをするかが分からないため、判断に困っています。 各パーミッションにおいて、それぞれどのようなことができるのか、使い方、特殊な使い方、こういうファイルにはこういうパーミッションを設定してあげる、など、細かいことを知りたいです。 ファイルの rwx(7) rw-(6) r-x(5) r--(4) -wx(3) -w-(2) --x(1) ---(0) の各場合と ディレクトリの、 rwx(7) rw-(6) r-x(5) r--(4) -wx(3) -w-(2) --x(1) ---(0) の各場合を知りたいです。 検索しましたが全てのパターンにおいて網羅されて書かれているようなものが 見つかりませんでした。 所有者・グループ・その他、での組み合わせも考えなければならないと思いますが、 まずは単一でパーミッション0~7について詳細に知りたいです。 お願い致します。

  • UNIX CからのJAVA起動について。

    いつもお世話になっております。 OS:UNIX、 言語:C言語で、JAVAで作成したクラスを引数を渡して起動したいのですが、やり方がわかりません。 実現可能なのかもよくわかりません。 UNIX開発は今回が初めてで困っております。 参考ソースや参考URLがありましたら、教えてください。 よろしくお願いいたします。

  • パーミッションの設定について

    この度、人事異動になりまして、社内HP担当になりました。(まだCGIは初心者です。)パーミッションの設定は、どんなサーバでも必要と思っていましたが、赴任先のWEBサーバはWindowsNTで、CGIファイルを転送後、パーミッションをFFFTPでいくら設定しようとしてもできませんでした。 昔仕事でお世話になったwebクリエイターに聞くと、Windowsは設定不要な場合があり、また、FFFTPではなく、telnetで設定するのではないか?とアドバイスを受けました。いろいろ私なりに調べましたが未だ解決の糸口を見出せません。どなたか愛の手を・・・

    • ベストアンサー
    • CGI
  • パーミッションの設定

    最近 PHP と MySQL の勉強をはじめました。 パーミッションについて教えてください。 サーバをレンタルしてPHP で MySQL に接続してデータを読み込んでいます。MySQL に接続する際の サーバ名,ユーザ名,パスワード,データベース名 は info.php という別のPHPファイルに書き込み、それを require_once(info.php) で読み込んでデータベースに接続しています。 info.php は data というディレクトリに格納していますが、セキュリティのためにパーミッションを設定したほうがいいと聞いたのですが data と info.phpのパーミッションはいくつにしたらよいのでしょうか?

    • ベストアンサー
    • PHP
  • パーミッションの設定で

    カレントディレクトリ以下にあるディレクトリは755に、ファイルは644にパーミッションを設定する場合、ディレクトリ内に含まれるファイルも644に設定する効率のよい方法はないでしょうか。

  • パーミッション設定について

    自作CGIまたはDLしたCGIを改良したCGIを使う場合、 CGIは通常どおり転送するわけですが..... そこで思ったのは、その後行うパーミッション設定なんですが.... (freewebにHPがあるとして) freewebにファイルを転送したあとにパーミッション設定を するとしたらどーすればいいんでしょうか? (freewebは、telnetがだめって書いてあるんですが。) その場合は、転送する前にパーミッションを設定すればいいので しょうか? どーしたらいいのでしょうか?助言おねがいします。

    • ベストアンサー
    • CGI

専門家に質問してみよう