
OSがUNIX・Apache2の環境下で以下の事が実施出来るのか
ご教授頂きたいと思います。
内容的には、webドキュメントフォルダ配下に以下の様な
状態のファイルを格納しておき、プログラム(cgi等)にて
ファイル一覧を表示し、閲覧(参照)したい。
・ ファイル名 owner group パーミッション
aaaaa.xls saitou user 700
bbbbb.xls suzuki user 700
ccccc.xls satou user 700
想定しているプログラムは、
Apacheのbasic認証を利用し、ログインしたユーザ名と
ファイルのownerが一致した際に、print文でリンク(ドキュメントフォルダ/ファイル名)を
表示し閲覧をする。
様な事を考えてみたのですが、この内容が本当に良い事なのか?
ファイルの所有者がApacheユーザではないのでファイル操作する事も
出来ないのではないか?と言う疑問点があり
(ApacheユーザのGroupでアクセスをすれば可能?)、
上記の様に、1つのディレクトリ内にユーザに参照させても良い
ファイルを操作する際、どのような対処方法が好ましいか
ご教授頂けましたら幸いです。
初心者的な話で申し訳ありません。
No.1ベストアンサー
- 回答日時:
結果的にお望みと思われる事は出来ますが
質問の文面どおりの事は出来ません。
何故なら.cgiの実行IDは一人のユーザーIDもしくはApache(等)の
いずれかですが 例えば.cgiの所有者がsatouであれば cccc.xlsは読めますが
aaaaとbbbbはアクセスできませんので
##以下、仮に全てユーザーsatouとして書きます##
*1.Suexecの場合に利用可能な方法
全てのxlsと.cgi =owner:satou パーミッション:700
SuexecのCGIは実行ID:satouですので全てのxlsが読めます
CGI以外の普通にアクセスする場合の実行IDはApache(等)ですので.xlsに直接アクセスは出来ません
*2.Suexecではないが.htaccessの機能が自由に使える場合
全てのxls=owner:satou パーミッション:704 (または604)
.cgi=owner:satou パーミッション:705
.htaccessに
<Files ~ "\.xls$">
Order allow,deny
Deny from all
</Files>
などと記述する。
これは通常.htaccess自体にはアクセス出来ないようになっていますがその方法をxlsに対して使うものです
CGIからのfile読み込みはこれの影響を受けません
但し、同じサーバー内の他のユーザーのCGIからも同様に読めます
*3. .htaccessも自由には使えないが拡張子.cgiはCGIアプリケーションとしてどこでも置ける
パーミッションなどは2.と同様
拡張子.xlsを.cgiに変えればaaaaなどに直接アクセス
すれば当然サーバーエラーになりますので読めません
以下は2.と同じ
ご返信が大変遅くなり申し訳ありませんでした。
umasikajiro様の詳細なご回答で理解できました。
本当にありがとうございました。
No.4
- 回答日時:
#2の補足に対する返信ですが
結論から言えば、専用サーバー(自宅サーバーも含む)
等でroot権限をあなたがお持ちで有れば、それも可能でしょう
ただ効率的かどうかとなると、、、
xlsを置くたびに、いちいちrootになってchownコマンドで
ownerとgroupを書き換えなくては行けませんのでねえ
$ENV{'REMOTE_USER'} が
例えばsaitouであっても
owner:saitouのfileに対し
owner権限でアクセス出来る分けではないことは理解されましたよね?
私がやるとしたら例えば
saitou-aaaaa.xls
suzuki-bbbbb.xls
satou-ccccc.xls
等と言うように ユーザー名-希望のfile名 と言うfile名にして
CGIプログラムの中で$ENV{'REMOTE_USER'} がsaitouの場合は
頭にsaitou-がつくfileだけを読み込み対象として、
CGIの画面に表示するfile名は- から後ろの
aaaa.xls とすれば良いのではないかと思いますね
丁重なご解答ありがとうございます。
確かにGroupの変更を随時するのは面倒ですので、
umasikajiro様のユーザ名-ファイル名.拡張子での
処理をメインに実施したいと思います。
初心者的な質問に詳細な情報を頂き本当にありがとうございます。
自分自身にも大変ためになりました。
No.3
- 回答日時:
しつこく書いて済みませんが、自分への覚書も兼ねて、、
#1の*2について
.htaccessでBASIC認証をするためにはhttpd.confの
AllowOverride に AuthConfig が必要
<Files ~ "\.xls$">
Order allow,deny
Deny from all
</Files>
を記述するためには AllowOverride にLimit が必要
従って*2を実現するためには AuthConfigとLimitの両方が許可されていないと無理
AllowOverride All でも勿論OK
No.2
- 回答日時:
あ、で、肝心の
> Apacheのbasic認証を利用し、ログインしたユーザ名
ごとに対応したfileを読み込むには下記1,2,3、のいずれかを設定の上でCGIの中で
ユーザー名と対応fileのデータベースが出来る用にしてから
(Perlなら)環境変数 $ENV{'REMOTE_USER'} を読んで
if分岐などして表示させれば出来ますね
この回答への補足
umasikajiro様
丁重なご回答ありがとうございます。
ユーザでの概念はこの内容で理解できたのですが、
逆にcgiと各ファイルのGroupでの処理は実現出来るのでしょうか?
以下、例ですが...
・Apacheのユーザ
・www/www(owner/Group)
・利用者ユーザ
・saitou/user(owner/Group)
・suzuki/user(owner/Group)
・satou/user(owner/Group)
・ ファイル名 owner group パーミッション
aaaaa.xls saitou www ***
bbbbb.xls suzuki www ***
ccccc.xls satou www ***
とした場合、上述の3つのファイルのGroupはapacheになり
cgiとしてはapacheのwww(owner?Group?)でアクセスすると
思いますが、このapacheでファイルを参照し
cgiで$ENV{'REMOTE_USER'} とファイルのownerと一致したのも
を対象に処理をする。と言う事が出来れば、特に大きなConfig変更が
なく動作出来るのかな?と思われますが、初心者的なご質問で
申し訳ありませんが宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) Excelで、社外秘(閲覧のみ)と表示され、共有者が編集出来ないのですが 4 2023/06/20 17:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIX+Apache構成でのWEBアクセ...
-
FTPにて553エラー
-
アクセス制限がうまく動かない
-
EXCELファイルに誰がアクセスし...
-
URLに~/cgi-bin/~を隠す方法
-
《エクセルVBA》「他の人が該当...
-
KENT WEB(昨日の続きです)
-
ファイルがアップロードされず...
-
最新の状態を誤って過去の状態...
-
インストール直後にウィルス検出
-
perl ブラウザ 0と表示される
-
ホームページを製作しています...
-
ファイルダウンロードのContent...
-
nicky.cgi内で、しぃペインター...
-
サーバが落ちているときのエラ...
-
PHPを使ったページはそのphpフ...
-
WindowsXP アプリケーションサ...
-
非常ベルは、いつぐらいから日...
-
CGIが吐き出したファイルの所有...
-
XHTML、GETで値を渡す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPにて553エラー
-
Perlの日記プログラムがIIS+Act...
-
@niftyでのCGI設定について。
-
Dreamweaverでのパーミッション...
-
パーミッションの変更ができない
-
PostMail パーミッションについて
-
PHPのパーミッションの設定につ...
-
CGI掲示板アップロード、403...
-
movabletypeのインストールが上...
-
VB6でレジストリファイルをイン...
-
CGI設置
-
CGIのデバッグについて
-
実行属性って?
-
掲示板のCGIを設置したいのです...
-
WEB PATIOが表示されない
-
yomiサーチのメニューのリンク...
-
CGIを設置したいのですが、エラ...
-
cgiからファイルの書き込みがで...
-
ftpでuploadのとき上書きとする...
-
ftpからでもtelnetからでもロー...
おすすめ情報