• 締切済み

スクリプトから作成されるファイル所有者

前回他の方で似た質問がありましたが、解決しませんでしたので、新たに質問させていただきますのでご了承ください。 【内容】 StepServerというレンタルサーバで実行しています。 セーフモードでPHPが利用可能です。 PHPスクリプトをFTPでアップロードした時の所有者が12345とします。 次に書き込みできるように12345の、あるフォルダに書込み許可します。 最後にスクリプトを実行して先ほどのフォルダ内に作成した、フォルダや、ファイルがすべて80と言うように別の所有者で作成されてしまいます(属性は777で作成できます)。 結果、さらにその所有者80の中にフォルダやファイルを作成しようとしても作成ができません(属性:777なのに・・・)。 同じ所有者で新規フォルダが作成できれば、解決できると思いますが、その方法がわかりません。 皆様のお知恵をお借りできればと思い書き込ませていただきました。 どうぞよろしくお願いいたします。 【参考】 1.他社レンタルサーバでは同じスクリプトで所有者が同じで作成できました。(StepServerでも動かしたいのでお願いします) 2.StepServerではMovableTypeの設置が可能で、MTの吐き出すファイルは全て12345の所有権で作成されているため、何らかの方法があると思われます。

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

みんなの回答

  • kaz33
  • ベストアンサー率60% (20/33)
回答No.1

ファイル作成後chown()、 chmod()、chgrp() で回避出来ませんか?

Bosspose
質問者

補足

回答ありがとうございます。 質問から何度も試行錯誤した結果、CGI(Perl)からなら 問題なく所有者が同じで作成できました。 PHPでもCGIで動作するものであればOKでした。 推測ですが、ApacheにPHPモジュールが組み込まれて いる場合うまくいかないようです。

関連するQ&A

  • chmod  と 所有者apache

    毎度、お世話になります。 phpでプログラムを組んでいます。 プログラム上で作成したフォルダに対しては、 ブログラム上で「chmod($dir, 0707)」を実行すると パーミッションが、「707」に変更されますが、 FTP上で新規作成したフォルダに ブログラム上で「chmod($dir, 0707)」を実行しても、 「Operation not permitted 」で出て、(権限がない?) パーミッションが、「707」に変更されません。 どうすれば、変更できますか? 参考、サーバは、ロリポップですが phpで作った場合は、所有者が apache になっています。 FTP上で新規作成した場合は、所有者はブランクです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 【サーバー構築】複数FTPアカウントを作成する問題

    サーバー構築初心者です。現在FTPサーバーの部分を勉強しています。 vsftpdで複数のFTPアカウントを作成し、それぞれのアカウントでファイルを作成すると、所有権や属性の問題で、本人しか編集できない場合があります。他人のものを編集するには属性を777等に上げる必要があります。 しかしながら、一般的な共有型レンタルサーバーの場合、複数のFTPアカウントを作成しても属性にかかわらず他人のディレクトリを削除可能です。(例えば属性755) どうすれば共有型レンタルサーバーのように設定できるのでしょうか。 お詳しい方、よろしくお願いします。 <環境> CPI社 クラウドコアVPS CentOS5.6

  • 実行スクリプトと所有者について

    お世話になっております。 現在Ubuntu9.04とその他のスクリプトは最新のモノでちょこちょことスクリプトを実行しています。 以前より正常に機能していたのですが、ある時期からperl、phpから実行されるスクリプトで新規でファイルを生成したり書き込んだりという場合にその実行したユーザー権限からapacheのwww-dataの権限になってしまいます。 特に問題なのがMovable TypeなどのCMSを実行した際に書き出されるindex.htmlまでがwww-dataの権限になってしまい、FTPでダウンロードすることも編集することもできなくなってしまいました。 何かしらの設定を変えた記憶はないのですが、通常のようにスクリプトを実行したユーザーと同様のユーザー権限(オーナー)でファイルを書き出すにはどうしたらよいでしょうか?

    • 締切済み
    • PHP
  • htdoc内の所有者、アクセス権限は誰にすれば?

    PHPでシステムを構築しています。 実行するWebサーバはLinuxです。 機能はいろいろあるんですが、そのひとつにzipファイルをアップロードすると、解凍して所定のフォルダ(htdoc内)にファイルを展開(場合によっては上書き)するという機能があります。 このファイルを展開するフォルダと言うのは、zip内に一緒に入っているconfファイルに書かれているフォルダに展開するし組みになっています。 このフォルダはプログラムが入っているフォルダも指定されることが良くあります。 プログラムが入っているフォルダは、所有者はFTPユーザでアクセス権は644に現在なっています。 当然ですが、上記の解凍、展開(ファイル保存)を行うのはapacheユーザのため、ファイル保存でワーニングが出ます。 フォルダなどの所有者をapacheユーザにすべて変えるというのが一番手っ取り早いと思ったのですが、各ファイル、フォルダをFTPから修正、追加することが、アクセス権を747とかかなりゆるくしないとできなくなると言う問題があります。 そこで、質問ですが。 1.zip展開システムで追加、修正される可能性のあるファイル、フォルダはhtdocs以下すべてです。 アクセス権を747等緩めにしても問題ないものでしょうか? 2.1が問題ある場合、何かよい解決策はあるでしょうか?   (ftpユーザとapacheユーザを同じグループに入れて774とかにするというのも少し考えたのですが、こういう方法が一番よいのでしょうか?) なお、ログインしないと操作できないようになっていますので、phpファイルを壊す可能性のあるアップロードをさせる設計自体をやめるという回答は求めていません。 よろしくお願いします。

    • 締切済み
    • PHP
  • 所有権の一括変換

    RedHatLinux9でサーバーを作りました。 その際旧サーバーのSolarisからFTPでバックアップをとり、 データを移動させたのですが 当り前と言えば当り前で、所有者とグループが全部rootになってしまったんです。ftpはrootでログインしましたから。(tarで固めてからできればよかったんですが容量に余裕がなくFTPで落したんです。) この為、所有者の変更をしなければならないのですが ユーザー数が400程ある為、とても手作業ではできないので、ユーザー名をpasswdファイルから抜き出し chown user user chown user1 user1 chown user2 user2 ・ ・ ・ ・ ・ ・ といった内容のhenkan.prnというファイルを作り実行属性をつけて source henkan.prn としたらカレントディレクトリ内のファイルの所有者は問題なく修正できました。ただこれだとその下のフォルダ内のファイルには全く適用されないので困ってます。 何かいい方法はないでしょうか?? chmod なら-R つければできますよね。 でもchownでは使えないみたいなので。 よろしくお願いします

  • Apache2 - CGIで出力されたファイルの所有者を変更するには?

    Gentoo LinuxでApache2を動かしています。 Apache2の質問です。 UserDirで実行された(mod_userdirで処理される)CGIまたはPHPスクリプトが出力するファイル/ディレクトリの所有者を、リクエストされたユーザディレクトリのuid, gid へ自動的に変更する方法を教えてください。 レンタルサーバーではこのような動作を見掛けるし一般的だと思うのですが設定方法がわかりません。 よろしくお願いします。

  • Web上にあるSQLファイルを実行するPHPスクリプト

    レンタルサーバを借りてCMSを運営しているのですが、引越しする必要がでてきました。 新しいサーバはデータベースにはそのレンタルサーバが設置したPHPMyAdminか、契約したサーバの領域内にあるPHPファイルからしか接続できず、そのPHPMyAdminは2Mまでのファイルしか読み込めません。 200Mちょっとあるデータベースを分割して読み込もうにも、画像をデータベースに取り込んでいるCMSなので、1つのテーブルだけで2Mを越えるものもあって、全部をPHPMyAdminで読み込むことはできません。 そこで、Web上にアップロードしたSQLファイルを実行できるPHPスクリプトを探しています。 そういったスクリプトをご存知の方、いらっしゃいましたら情報をお願いします。

    • 締切済み
    • PHP
  • レンタルサーバーに設置したファイルが消せなくなった

    表題の通り、レンタルサーバー(aaacafe)に phpで動くブログスクリプト設置しまして、運営していました。 自動生成されるファイルやディレクトリが自分の権限ではなくて、 apacheのnobody権限で作成されてしまい、FTPで消せなくなってしまったのですが、 どうすれば消せるようになるでしょうか。 セーフモードで動いているサーバーみたいで、困っています。 phpが作ったファイルなので、phpで動くファイルマネージャーみたいなのを探していたのですが、 あいにくみつからず困っています。どうすればよいでしょうか。

    • 締切済み
    • PHP
  • PHPでの自動作成されるファイルが

    ファイルの読み込み自体や、 既存ファイルへの書き込み等は問題がないようですが、 「新規」でファイルの追加が出来ない状況です。 つまりPHPで自動生成されるスクリプトが動作しません。 サーバー移転で、新しいサーバーのみ動かない状況です。 前回以下の回答がありましたが ----------------------------------------------------- PHPを実行しているスクリプトがファイルを作成する場合 ファイルの所有者はsystem(Apache)になると思われます。 要するに作成しようとするファイルの親ディレクトリの 所有者がsystem(Apache)であり、所有者書き込みが可能 のパーミッション(700)になっている場合か、親ディレクトリの 所有者がsystem(Apache)以外であるなら、所有者以外の 書き込みが許可(707もしくは777)になってなければ 新規ファイルの作成は失敗します。 ----------------------------------------------------- ユーザー用ディレクトリ(仮にuserとします) 所有者はアカウント、パーミッションは777です 登録があれば、userディレクトリにIDの名前で新しくディレクトリが作成され そのID名のディレクトリの中に必要なファイルも自動的に作成されます この登録が動作しません・・・ ファイルが新しく作成されない状態です。 試しに手動でUPすると、動作は正常でした。 ファイルの自動作成のみが動作しません。 パーミッションもこれで合っているように思えるのですが・・・ 原因が分かりません・・

    • ベストアンサー
    • PHP
  • 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

専門家に質問してみよう