• 締切済み

会員制CGIで自動作成したファイルの所有者

会員制のCGIを作成しておりまして ログファイルとして、ログイン名.txtというファイルを自動作成してます。 もうすぐ完成で、このままでもそれほど問題ではないのですが、ファイルを整理したい時に困るかなと思い質問させて頂きます iswebサーバにアップして ファイルが作成される事は確認しました。 確認後、削除しようと思ってもオーナーが違うので FTPから削除できないようですが 削除するにはどんな方法があるでしょうか?(この場合パーミッションも変えられませんよね) スクリプト中に削除画面を作って、unlinkで削除する記述をし、ブラウザから削除作業をするようにすれば大丈夫でしょうか。 基本的な事なのかもしれませんが、自己流でやってますので知識が乏しくお知恵を貸してください。

  • CGI
  • 回答数1
  • ありがとう数1

みんなの回答

  • shy00
  • ベストアンサー率34% (2081/5977)
回答No.1

>確認後、削除しようと思ってもオーナーが違うので ログファイルの書き出し時に所有者をangelusbellさんになるように CGIを変更すれば、オーナーが違うようなことにはなりませんよ ログの書き出し部分を見直されてはいかがでしょうか?

angelusbell
質問者

お礼

お世話になっています。 自分で調べて、chown "angelusbell",-1,$htmlname; でやってみましたが、変更されませんでした。 やはり皆が使うサーバでは変更できないようになっているのでしょうか。

angelusbell
質問者

補足

ありがとうございます。 普通の書き出し文しか書いてませんでしたので 書込後にchownで変更すればいいのでしょうか。 http://www.futomi.com/cgi-bin/lecture/perl5ref.cgi?MODE=DISP&FUNC=chown このページを見ると「ほとんどのシステムでは、スーパユーザでない限り、ファイルの所有者を変更できません。」と書いてありましたので この方法では自分のサーバ以外では 変更できないと思っていました。 意味が違ったのですね。 記述ですが これで問題ないでしょうか。 chown "angelusbell", $gid, "user.txt"; また、教えて欲しいのですが $gidグループ名とはなんの事でしょうか? どの値を入れていいか分からないので 申し訳ありませんが 再度教えてください。

関連するQ&A

  • cgiからファイルの書き込みができません

    apache上で動いていたcgiプログラムがある日を境に動かなくなってしまいました。 ファイルにテキストデータを書き込みたいのですがうまく動きません。すでにあるファイルに対しては、データを追加することができるのですが、新たにファイルを作成して書き込むことができないようです。 これに前後して以下のような作業を行っています。 ・PHPのインストール ・パーミッションの変更 パーミッションの問題かと思い色々試しましたがうまくうごきません。 どなたかご助言ください。 ちなみにパーミッションは /cgi-bin(777) オーナー:ユーザー -home(777) オーナー:ユーザー -counter.cgi(777) オーナー:ユーザー  -count.dat(777) オーナー:ユーザー で試してみましたが成功しませんでした。 サーバはapacheの1.3.22です。

  • CGI設置(>_<)

    はじめまして。 rennkaと申します。 CGIの事でお聞きしたい事があるのです。 Tacky's Roomの 『ぷりんぷりんく』→ 自動登録リンクをダウンロードし 設置しようと思い設定を変えたりしているのですが・・・ どうしても403 Forbiddenから抜け出せないのです。 パーミッションの設定が悪いと思い 調べて変えてみるのですが やっぱり403 Forbiddenと表示されます… ちなみに私は無料サーバーで Infoseekのiswebです。 cgi-binフォルダをフォルダを作り そこに全てUPする。 とあるので、UPしているのにもかからわらず 403 Forbiddenから抜け出せない… これってやっぱり パーミッションのせいなんでしょうか? パーミッションの部分をコピーして見ると… public_html(ホームページディレクトリ) #+++ | #+++ |-- cgi-bin(任意のディレクトリ) #+++ | #+++ |-- jcode.pl (755)…(日本語ライブラリ) #+++ |-- pulinpulink.cgi (755)…(スクリプト本体) #+++ |-- pulinpulink.txt (666)…(ログファイル)…空のままアップロード #+++ |-- pulinpulink_bak01.txt(666)…(バックアップファイル)…空のままアップロード #+++ |-- pulinpulink_bak02.txt(666)…(バックアップファイル)…空のままアップロード #+++ |-- ~ #+++ |-- pulinpulink_bakxx.txt(666)…(バックアップファイル)…空のままアップロード ()の中はパーミッションの値 となっています。 分からなくて困っています… 分かる方がいれば教えてください。 お願いします!!!

    • ベストアンサー
    • CGI
  • ファイルの削除について ( unlink )

    perl プログラミング 2日目の初心者です。 以下のようなスクリプトを書いて test.cgi とかで $del_count = unlink glob("msg-*.txt"); 保存し、ブラウザーでアクセスすると、ちゃんと ファイルが削除されるのですが、 シェル上で実行すると、以下のようなメッセージ glob failed (child exited with status 1) at test.cgi line 5. とか出て削除ができないのです。 パーミッションも 755 とかで試したのですが、 どうしてなのでしょうか・・・うんうん煮詰まって います。

    • ベストアンサー
    • CGI
  • perl(CGI)から作成したディレクトリがFTPで消せないのはなぜ?

    HTMLページからそのCGIを叩くと『年月』の名前のディレクトリを作って、 その中に日毎のアクセスログファイルを作成するCGIを作っています。 ディレクトリを作成するパールは以下です。 mkdir($dir, 0777); しかし実行すると$dirのパーミッションは755になってしまいます、 その中に作成されるファイルは正常に作成されるのですが、 そのディレクトリ/ファイル共にFTPから削除/パーミッションの変更が 出来なくなってしまいます。 telnetから入って削除しようとしても普通のユーザー権限では無理で 削除する為にはルートにならなければなりません。 なぜでしょう?FTPから操作できる権限のディレクトリを作る方法が あるのでしょうか? バカな質問だと思いますが分かる方がいらっしゃいましたら教えて下さい。

    • ベストアンサー
    • Perl
  • cgiを使ってサーバ上にファイルを作成する方法

    無料のサーバスペースを使用してHPを作っています。 perlを使って自作したcgiをwindowsのコマンドラインで実行すると open(F,">oceco.txt"); print F "oceco\n"; close(F); この記述でファイルが新規作成されるのに、サーバー上のcgiで実行するとファイルが新規作成されません。 しかし、空のoceco.txtをFTPでサーバーに送って属性変更を済ませ、cgiを実行するとoceco.txtの中身が変更されます。 同じサーバでフリーの掲示板cgiを使用していますが、ログファイルを新規作成できています。 そこで質問です。 cgiをつかってサーバ上でファイルを新規作成する方法を教えてください。

    • ベストアンサー
    • Perl
  • /tmp内のファイルの削除について

    レンタルサーバーであるcgiが動いており、このcgiが/tmpに一時ファイルを作成しているようで、 レンタルサーバー業者より「このファイルの削除をスクリプト経由で削除してください。」と連絡が来ました。 該当の/tmp内にあるファイルを一覧できるcgiをもらい、見ることは出来たのですが、削除する方法がわかりません。。 ちなにみ、/tmpはroot直下にあるため、FTPなどでは見れません。 スクリプトにて削除してください。という事ですが、具体的にどのようなスクリプトを作ればいいのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • CGI
  • CGIが吐き出したファイルの所有者の変更

    データベースCGIで作ったデータを元にhtmlファイルを吐き出すようなつくりにしています。 この、吐き出されたファイルの所有者がnobodyになっていて、FFFTPなどのソフトから修正しようとすると上書きが出来ない状態になってしまっています。 これを、CGIから吐き出す時に所有者を変える事は出来ないのでしょうか? 吐き出すところは以下のようになっています。 sub html_reg{ if (-e "../../list/$no.html"){unlink "../../list/$no.html";} open(HTML,"+>>../../list/$no.html"); &html_data; close(HTML); }

    • 締切済み
    • CGI
  • ファイルの削除について

    あるフォルダ内の ファイルを削除するのに (1)unlinkを使用する (2)1つのファイルであれば unlink<abc.txt>でいい (3)テキストファイルを全部消すのであれば unlink<*.txt>でいい というところまでは わかっています ですが たとえば フォルダ内に abc1011.txt abc1012.txt abd1011.txt abd1012.txt abe1011.txt abe1012.txt abf1011.txt abf1012.txt のような ファイルがあり 1012を含むものだけ削除したい という場合はどのようにすればいいのでしょうか

    • ベストアンサー
    • Perl
  • cgiのsystem関数を用い、ファイル作成したい

    いつもお世話になっております。 今回、質問させて頂く問題と内容は以下になります。 解決したい問題 cgiから、自作した実行ファイル「create_file」を動かしファイルを作成したい。 構成は以下になります。 OS:Ubuntu 10.10 作業ディレクトリ /var/www/cgi-bin ファイルと機能 index.html : cgiの呼び出し用html。 create.cgi : 実行ファイル「create_file」を呼び出す。 create_file : 実行ファイル。実行すると同ディレクトリに”result.txt”を作成する。 以上の構成でindex.htmlを開いた際にcreate.cgiがcreate_fileを呼び出し、result.txtを 同ディレクトリに作成するようにしたいのですが、実現できません。 create_file単体を実行した際は、同ディレクトリにresult.txtが作成されるので、create_fileを呼び出す箇所が上手くいっていない様です。 尚、create.cgiにおけるcreate_file呼び出しを以下のようにしています。 index.html <HTML>  <BODY>    <a href = "create.cgi">cgi呼び出し</href>  </BODY> </HTML> create.cgi ~~~~~~~~~~~~~~~~~~~~ chmod(0755,"./create_file"); system`./create_file`; ~~~~~~~~~~~~~~~~~~~~ 情報が少なく申し訳ないのですが、問題箇所が分かる方いらっしゃいませいたら、どうぞ御教授お願い致します。

    • 締切済み
    • CGI
  • アクセスカウンタ

    プロバイダWAKWAKの無料HPサービスで、 アクセスカウンタを作成、設置しました ユーザー設定ガイド http://www.wakwak.com/support/setup/homepage/cgi/counter.html の通り、 txtファイルに、下記の記述を追加 <img src="/cgi-bin/Count.cgi?df=xxxxx|user=yyyyy"> xxxx はアクセスカウンタ名 yyyyyはFTPログインID を入力しました txtファイルは、『count.txt』とファイル名をつけて、保存 これを cgi-bin に アップロードして、 アドレスバーに下記の通り入力、表示しようとしましたが・・・ http://park21.wakwak.com/~○○○/cgi-bin/count.txt (○○○は私のFTPログインID) エラーの表示になってしまいました CGI Error The error was detected while processing this request. Be sure of followings: The CGI script does exist. The permission of CGI script is 755. The Perl path in CGI script is #!/usr/local/bin/perl. CGIスクリプトの呼び出し中にエラーが発生しました。 下記の点をご確認ください。 ・CGIスクリプトが存在すること。 ・CGIスクリプトのパーミッションが755であること。 ・CGIスクリプトのperlのパスが #!/usr/local/bin/perl であること。 アクセスカウンタが表示できない理由は何でしょうか?

専門家に質問してみよう