• ベストアンサー

Webアプリケーションのアクセス権ついて

Webアプリケーションを開発しています。そのなかでユーザのアクセス権について悩んでいます。 開発環境: OS: Linux Webserver: Apache2.2 Tomcat5 クライアントPCよりサーバ内のディレクトリに対してアクセスする時に、セキュリティ上の観点よりユーザによりアクセスできるディレクトリを制限したいと思っております。ディレクトリについてはパーミッションで制限するのだと思いますが、クライアントPCからのユーザをどのように設定するのか解りません。 ご教授願えればと思います。よろしくお願いいたします。

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

  • ベストアンサー
  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.4

ユーザの概念が混乱していませんか? WebアプリケーションのログインユーザとUNIXユーザとは別物です。 ファイルの権限はUNIXユーザ毎に設定します。 Webアプリケーションで使用するファイルは全て、Apacheのユーザで使えるようにしておきます。 Webアプリケーションのログインユーザの管理は、アプリケーション側で行なう必要があります。

tteeii
質問者

お礼

返信に時間がかかり申し訳ありません。少し混乱してしまっていた質問ですが、親切に答えていただきありがとうございました。Apacheのユーザで設定してみます。またWebDavも参考にしてみたいと思います。いろいろありがとうございました。

tteeii
質問者

補足

ご回答ありがとうございます。確かに混乱してしまっているようです。 >ファイルの権限はUNIXユーザ毎に設定します。 >Webアプリケーションで使用するファイルは全て、Apacheのユーザで使えるようにしておきます。 これはApacheのhttpd.conf内のUser Groupの指定部分で"Apache"と指定したならば、Linuxのパーミッションも"Apache"で指定しておけばいいということでしょうか? ここでもうひとつ教えていただいてよろしいでしょうか? Apacheのhttpd.conf内のUser Groupをあるユーザで指定してApacheを起動します。その後、ps -aux で見ると何個が立ち上がっているプロセスのなかでSTATがSsのものだけUSERがrootで、それ以外はhttpd.confで指定したユーザ名となっていますが、この状態にしておいてそのユーザ名でパーミッションを設定すればよいのでしょうか? よろしくお願いいたします。

その他の回答 (3)

回答No.3

webブラウザにてアクセスというのは、 webdav使えばできると思いますが、外してますでしょうか?

tteeii
質問者

お礼

返信に時間がかかり申し訳ありませんでした。webdavですが、参考というより勉強させていただきます。ありがとうございました。

  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.2

apacheのユーザは、apacheになってますよね。 nobodyじゃないですよね。 > クライアントPCからのユーザをどのように設定 何(クライアントPCのサービス)をどう使うのですか?

tteeii
質問者

補足

>apacheのユーザは、apacheになってますよね。 >nobodyじゃないですよね。 apacheのユーザはnobodyではありません。がapache設定サイトでnobodyではなく違うユーザにしたほうが良いとあったので今は任意のユーザを指定しています。LinuxOSにも同ユーザ名を作成してあります。apacheユーザにしたほうがよろしいのでしょうか? >何(クライアントPCのサービス)をどう使うのですか? 質問の書き方が解りにくくて申し訳ありません。 Webブラウザを使用してアクセスしてくるクライアントに対して、あるユーザはディレクトリへのファイルの書き込みが可、あるユーザは不可と、Linuxサーバ内のディレクトリにアクセス制限をかけるためパーミッションの設定をしたいと思っております。そのパーミッションの設定で指定(chown)するユーザをどのようにすればよいのか解らないのです。apacheのユーザをapacheとしたらクライアントのユーザは全てapacheということになるのでしょうか?あるいはtomcatの方でなにか設定があるのでしょうか? よろしくお願いいたします。

  • mtfoggy
  • ベストアンサー率14% (37/255)
回答No.1

>クライアントPCからのユーザをどのように設定するのか解りません。 クライアントPCから、telnet / ssh 等でリモートログインしたら rootになってchown / chmod コマンドなどで設定してください。

tteeii
質問者

お礼

返信が遅くて申し訳ありません。Linux側でおこなうのではなくWebアプリケーションでの疑問でした・・・。回答ありがとうございました。

tteeii
質問者

補足

ご回答していただきましてありがとうございます。 すみません。こちらの説明不足でした。 >クライアントPCからのユーザをどのように設定するのか解りません。 のクライアントPCとはWebアプリケーションでブラウザを通してサーバサイドにアクセスしてくるクライアントユーザのことです。このクライアントユーザに対してApache2かTomcat5の何らかの設定とLinuxのパーミッションによってLinux上のディレクトリへのアクセス権を設定したいと考えております。 質問が解りづらくて申し訳ありません。なにか情報が足らないようでしたら順次補足させていただきます。  よろしくお願いいたします。

関連するQ&A

  • Apache2実行ユーザでLinuxディレクトリへのアクセス制御をするには?

    Apache2・Tomcatを使用したWebアプリケーションよりLinuxOS(CentOS4.4)内の特定のディレクトリのファイル一覧を取得また特定ユーザにのみそのディレクトリ内へのファイルの書込みを許可するというようなアプリケーションを作成中です。またこのアプリケーションのユーザ以外は上記ディレクトリへのアクセス許可を与えないようにしたいと思っています。そこでApache2の実行ユーザと同ユーザによってLinuxOS内の該当ディレクトリにパーミッションを設定すれば実現できるのではと思い自分なりに設定してみたのですがうまくいきません。 クライアントとしてブラウザからApache2に接続したPCはLinux上ではApache2の実行ユーザとして認識されないのでしょうか? Apache2の実行ユーザはhttpd.confのUser nobody Group nobodyとなっているところを任意のユーザに変更しました。 User apa01 Group apa01(ここではapa01とします)Linux内にも同名のユーザ・グループを追加します。 LinuxOSのユーザはapa01(上記)とlxuserの2人がいるとします。 該当ディレクトリのパーミッションは d rwxr-x--- apa01 apa01 該当ディレクトリ名 とします。 これによりapa01と認識されている?と思われるwebアプリケーションのクライアントPCからは該当ディレクトり内のファイルを取得できました。ここでパーミッションをd rwxr-x--- lxuser lxuserと変更します。すると思惑ではWebアプリケーションのクライアントからはファイルの一覧が取得できなくなるはずでしたがしっかり取得してしまいます。ひょっとして・・と思いApache2のhttpd.confのUser Groupを変更してもしっかり取得してしまいます。 なにか考えが根本的に違っているのでしょうか? 長々と書きましたがもっと違う方法があるようでしたら是非ともご教授願えませんでしょうか?よろしくお願いいたします。

  • linux系OSでの、アプリケーションの権限について。

    こんにちわ。linuxを利用してのサーバー公開を目指して勉強しています。 ファイルやディレクトリの権限について学んでいる中で疑問に思ったのですが、CGIなどのWEBアプリケーションや、tomcat、apache等のサーバーアプリケーションの実行権限(root、一般ユーザー)は、何に依存しているのでしょうか? 例えば、tomcatの起動スクリプトや本体のファイルがrootの所有であった場合、tomcatが行うファイルアクセス等もroot権限で行われるのでしょうか。それとも別にそれを記述するファイル等が存在しているのでしょうか?

  • ACCESSランタイムでLinuxによるファイルサーバ上のACCESSのアプリケーションを操作できるか?

    ACCESSで開発したDBアプリケーションをWindows ServerやXPではなく、Linuxでファイル共有サーバを作成してそこに格納した場合、クライアント側からランタイムでそのACCESSアプリケーションを動かすことは可能でしょうか? 特に実際にやったことがあるという方、ご回答願います。

  • Webアプリケーションについて

    社内LANのみでWebアプリケーションを作成しようと考えています。 この場合、どのような環境がよろしいでしょうか? 私なりに考えたものは、 CentOS PHP MySQL Apache かなと思いますが、いかがでしょうか? クライアントはすべてWindows PC です。 ちなみに、すでにWindowsServer機がありまして、ファイルサーバ等として動いています。 これとは別にWebアプリ用のサーバを置こうと考えています。 運用やセキュリティなど素人ですので、どのような構成がいいかがわかりません。 ご指導よろしくお願いいたします。

  • linuxで特定のディレクトリのみにアクセスさせたい。

    linuxで特定のディレクトリのみにアクセスさせたい。 以下のようなディレクトリがあったとして、あるユーザーには、hoge5だけをアクセスさせるようにしたいです。 但し、hoge5以外はパーミッションを変更したくありません。 何かよい方法ありますでしょうか? hoge1 775 hoge2 775 hoge3 775 hoge4 775 hoge5 775 すみません、linuxはよく分かっておらず、質問に抜けがありましたらご指摘ください。

  • アプリケーションのURLについて。

    こんXXわ。 今アプリケーション構築中なのですが、非常に困っています。ご教授願います。 ・Apache+Tomcatでアプリケーションを開発しました。このアプリケーションの起動URLが、 「http://www.xxx.com/app/start.jsp」 だった場合にアドレスバーやリンク元からは 「http://www.xxx.com/」 でアクセスしたときにstart.jspを表示できるようにしたいのです。このときユーザーのアドレスバーにはあくまで「http://www.xxx.com/」と表示され、「app/start.jsp」が出ないことが必要です。 httpd.confやserver.xml,web.xmlをいろいろやってみているのですがうまく行きません。現場で困っています。どなたか、お助けください。

  • ウェブにアクセスする時アドレス欄の最後の/(スラッシュ)について

    アクセスありがとうございます。 今回の質問はかなりどーでもいいことのように思われますが教えてください。 ブラウザのアドレス欄にURLを入力するとき、その最後尾に付ける/(スラッシュ)についてなのですが このスラッシュをたまに付け忘れることってありますよね。 でも最新のブラウザはそういう場合でも/を自動的に補完して私たちは何の問題もなくホームページを閲覧できますよね。 しかし今日この常識をくつがえす事態が発生しました。 実は最近Linuxで自宅Webサーバを構築しました。 そしてテストがてら、それにアクセスしてみたのですが 192.168.1.10/~burn/だと問題なくアクセスできるのですが 192.168.1.10/~burnだとアクセスできないのです。 権利がないとかそのような意味合いの英語のメッセージが返ってきてしまいます。 その後、調べたところ、どうもユーザ「burn」のホームディレクトリのパーミッションを甘くすれば/を付けなくてもアクセスできるようです。 でもホームディレクトリのパーミッションを甘くするのはセキュリティ上、好ましくないそうですね。 でも僕は/を付けなくてもアクセスできるようにしたいのです(普通の人に言わせればどーでもいいことのように思われますが)。 httpd.confをいじれば何とかなるような気もしますが、何しろ一番下までスクロールするだけで1~2分かかる巨大ファイル(しかも英語)ですので、ちょっと途方に暮れています。 えー私はいったい何が言いたいのかといいますと ズバリお聞きします。 ユーザのホームディレクトリのパーミッションを変更せずに URLの最後尾に/を付けなくてもホームページにアクセスできるような方法はありますか。 質問文が長くなってしまってすいません。 ここまでお読みいただきありがとうございました。 この解決法をご存じの方は是非教えてください。 Webサーバは「httpd-2.0.40-8.i386.rpm」です。

  • Webサーバーにブラウザ以外でアクセスしたい

    Java限定ではないのですが できればTomcatで実現したいです。 理由はTomcatでの開発期間が一番長いというのが理由です。 Tomcatで無理ならば、ほかのものでも大丈夫です。 そもそも以下のような事は可能でしょうか? .Netなどで開発するフォームアプリケーションや Javaなどのコンソールアプリケーションから WebアプリケーションのURLにアクセスし、JSONを取得する。 フォームアプリケーションを配布すると、修正のたび配布しなければなりません。 アップデートが頻繁にありそうな部分だけでも、そういった実装にすると 手間を省けるのではないかと考えているのですが・・・ よろしくおねがいします。

    • ベストアンサー
    • Java
  • LAN外のPCから自宅PCのWEBアプリケーションを使いたい

    こんにちは いつもお世話になってます。 以前「webサーバー公開できない。(AIR-EDGE使用)」 という質問を投稿したものです。 質問の書き方がよくなかったので、改めてわかりやすく文を書き直しました。 よろしくお願いします。 tomcatを使ってWEBアプリケーションを作成したのですが LAN外のネットワークのまったく異なるパソコン外部のパソコンからアクセスしようとすると 「ページを表示できません」 と表示されます。 何が原因なのかわかりません。 【作業手順】 (1)自宅PCでインターネットに接続 (2)自宅PCでTOMCATを立ち上げる (3)自宅PCでapacheを立ち上げる (4)自宅PCの電源をつけたまま会社へ行き (5)会社のPCから 「http://xxx.xxx.jp/"コンテキスト名"/filemei.jsp」 にアクセスしようとする。 (6)「ページを表示できません」とエラーが出る。 (7)ping xxx.xxx.jp コマンドではPINGも飛んでいない。 ローカル(xxx.xxx.jp=localhost)ではもちろんページが表示でき、 アプリケーションも何も問題なく動きます。 tomcatはapacheと連携しています。 LAN外のPCから自宅PCのWEBアプリケーションを使いたいのですがどうしたらよろしいでしょうか もし解決方法ご存知でしたら教えていただきたいと思います。 よろしくお願いいたします。 (※)「xxx.xxx.jp」DDNSで登録しているドメイン

  • Tomcatの実行ユーザーの確認方法

    Tomcat上で動くWebアプリをJavaにて作成し、その中でディレクトリを作成する処理を 行っております。しかし、そのディレクトリを作成する処理の部分で失敗してしまいます。 ディレクトリの作成先はApache(WebServer)のドキュメントルート配下(/var/www/html/img)を 指定しています。OSはCentOSです。 他の場所(TomcatのWebappsの自分のプロジェクト配下)を指定した場合はうまくいくので、 ディレクトリを作成する権限がないのではと思っています。 Tomcatには実行ユーザーというものがあるということがわかったのですが 今、どのユーザーでTomcatが実行されているのかというのはどのように調べればよいでしょうか。 Tomcatはyumにてインストールしているのですがデフォルトではrootで実行されるということは ないのでしょうか。

    • ベストアンサー
    • Java