- ベストアンサー
Webアプリケーションのアクセス権ついて
Webアプリケーションを開発しています。そのなかでユーザのアクセス権について悩んでいます。 開発環境: OS: Linux Webserver: Apache2.2 Tomcat5 クライアントPCよりサーバ内のディレクトリに対してアクセスする時に、セキュリティ上の観点よりユーザによりアクセスできるディレクトリを制限したいと思っております。ディレクトリについてはパーミッションで制限するのだと思いますが、クライアントPCからのユーザをどのように設定するのか解りません。 ご教授願えればと思います。よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ユーザの概念が混乱していませんか? WebアプリケーションのログインユーザとUNIXユーザとは別物です。 ファイルの権限はUNIXユーザ毎に設定します。 Webアプリケーションで使用するファイルは全て、Apacheのユーザで使えるようにしておきます。 Webアプリケーションのログインユーザの管理は、アプリケーション側で行なう必要があります。
その他の回答 (3)
- panerai777
- ベストアンサー率34% (9/26)
webブラウザにてアクセスというのは、 webdav使えばできると思いますが、外してますでしょうか?
お礼
返信に時間がかかり申し訳ありませんでした。webdavですが、参考というより勉強させていただきます。ありがとうございました。
- TA-HT81S
- ベストアンサー率39% (72/184)
apacheのユーザは、apacheになってますよね。 nobodyじゃないですよね。 > クライアントPCからのユーザをどのように設定 何(クライアントPCのサービス)をどう使うのですか?
補足
>apacheのユーザは、apacheになってますよね。 >nobodyじゃないですよね。 apacheのユーザはnobodyではありません。がapache設定サイトでnobodyではなく違うユーザにしたほうが良いとあったので今は任意のユーザを指定しています。LinuxOSにも同ユーザ名を作成してあります。apacheユーザにしたほうがよろしいのでしょうか? >何(クライアントPCのサービス)をどう使うのですか? 質問の書き方が解りにくくて申し訳ありません。 Webブラウザを使用してアクセスしてくるクライアントに対して、あるユーザはディレクトリへのファイルの書き込みが可、あるユーザは不可と、Linuxサーバ内のディレクトリにアクセス制限をかけるためパーミッションの設定をしたいと思っております。そのパーミッションの設定で指定(chown)するユーザをどのようにすればよいのか解らないのです。apacheのユーザをapacheとしたらクライアントのユーザは全てapacheということになるのでしょうか?あるいはtomcatの方でなにか設定があるのでしょうか? よろしくお願いいたします。
- mtfoggy
- ベストアンサー率14% (37/255)
>クライアントPCからのユーザをどのように設定するのか解りません。 クライアントPCから、telnet / ssh 等でリモートログインしたら rootになってchown / chmod コマンドなどで設定してください。
お礼
返信が遅くて申し訳ありません。Linux側でおこなうのではなくWebアプリケーションでの疑問でした・・・。回答ありがとうございました。
補足
ご回答していただきましてありがとうございます。 すみません。こちらの説明不足でした。 >クライアントPCからのユーザをどのように設定するのか解りません。 のクライアントPCとはWebアプリケーションでブラウザを通してサーバサイドにアクセスしてくるクライアントユーザのことです。このクライアントユーザに対してApache2かTomcat5の何らかの設定とLinuxのパーミッションによってLinux上のディレクトリへのアクセス権を設定したいと考えております。 質問が解りづらくて申し訳ありません。なにか情報が足らないようでしたら順次補足させていただきます。 よろしくお願いいたします。
お礼
返信に時間がかかり申し訳ありません。少し混乱してしまっていた質問ですが、親切に答えていただきありがとうございました。Apacheのユーザで設定してみます。またWebDavも参考にしてみたいと思います。いろいろありがとうございました。
補足
ご回答ありがとうございます。確かに混乱してしまっているようです。 >ファイルの権限は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で指定したユーザ名となっていますが、この状態にしておいてそのユーザ名でパーミッションを設定すればよいのでしょうか? よろしくお願いいたします。