• 締切済み

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
  • 回答数1
  • ありがとう数0

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

1. 問題があるかどうかはこれだけではわかりません。他にどんなユーザがあるかにも依るし。 2. 所有者をapacheにして、ftpでログインする時にapacheでログインすればいいのでは?

関連するQ&A

  • アクセス権限についての疑問

    アクセス権限について疑問があります。所有者権限、グループ権限、ユーザー権限とありますが、 ・所有者権限とはどこで所有者と判別しているのですか?たいていはFTPソフトでファイルをアップロードしますが、確認するのはIEなどのブラウザです。どうやって所有者のPCからのアクセスを所有者と判断しているのでしょうか?なんとなくPCからアクセスすればユーザー権限で実行されている気がするのですが・・・。 ・グループ権限のグループとはどこのグループのことでしょうか?各解説サイトには「サーバー上の同じグループに属するユーザー」とか「ネットワークのグループ」とかありますが、いったいどのグループに属しているのか不明です。 レンタルサーバーで共有サーバーの場合、同じサーバーを利用している他ユーザーのことでしょうか? 疑問がわいたので質問してみました。

    • 締切済み
    • CGI
  • ファイルのアップロードに関して

    phpでファイルのアップロードをするプログラムを作成しています。 当初 move_uploaded_file を使い意外と簡単に作れたのですが、ファイルの所有者がApacheになってしまいます。 何故、ファイルの所有者が Apache でまずいのかというと、ユーザーの使用域を quota で制限しているのですが、所有者がApacheになっていると、制限ができません。 (ユーザーのエリアにアップロードしても、ユーザーが Apache になっていると、使用済み容量が増えません。) そこで、アップロード後 chown で所有者を変更しようと思いましたが、ルート権限でないと変更できないようで、うまく行きませんでした。 マニュアルを見ていると ftp_connect で接続し ftp_login でログインしてから ftp_put で転送してやれば所有者をログイン時のユーザーにできそうと思い作成したのですが、 <FORM method="post" action="hoge.php" enctype="multipart/form-data"> : : <input name="userfile" size="60" type="file"> では、hoge.phpに転送元のファイル名がうまく引き渡されません。 よい知恵はないでしょうか。 尚、サーバー側の環境は Fedora 1 Apache/2.0.48 PHP Version 4.3.4 です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • CakePHPのファイルの所有者の権限について

    UbuntuにCakePHPを動くようにしました。 端末から下記のコマンドでCakePHPの圧縮ファイルを解凍しました。 ・sudo unzip cakephp-cakephp-1.3.13-0-g924fb6f.zip 下記のコマンドを実行してディレクトリやファイルの所有者(ユーザーやグループ)を確認したらrootでした。 ・ls -la CakePHPのディレクトリやファイルの所有者(ユーザーやグループ)は誰にしたらいいのでしょうか。 ※例えばnobooyやnogroupやwww-dataするとか 申し訳ありませんがアドバイスいただけませんでしょうか。 つまらない質問かもしれませんが宜しくお願いします。

    • ベストアンサー
    • 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では使えないみたいなので。 よろしくお願いします

  • Apache 2.4.0でphp5.3を使うには?

    Apacheをインストールし、ApacheからPHPを使える状態にしたいです。 Apacheのインストールは、 http://www.apachelounge.com/download/から Apache 2.4.0 httpd-2.4.0-win32.zip をダウンロードし、c:/pg/にApache24という名前のフォルダで配置しました。 ドキュメントルートのhtmlファイルをブラウザで表示できるところまでできています。 PHPのインストールは http://windows.php.net/download/から PHP 5.3 (5.3.9) Zip [14.94MB] sha1: 4149d79a877ae7ccb0e5419b13152b5bd3074825 php-5.3.9-nts-Win32-VC9-x86.zipをダウンロードし デスクトップにphpというフォルダを作成し、その中に全て展開しました。 展開されたphpフォルダをc:/pg/Apache24に配置しました。c:/pg/Apache24/php PHP利用のための設定 モジュールの追加 http://www.adminweb.jp/apache/php/index1.html を参考にするとApacheでphpを利用するためには、 Apache2.2系を使う場合は、"httpd.conf"ファイルの中の "Dynamic Shared Object (DSO) Support"ブロックの一番最後に 次の行を追加すればよいという説明があります。 LoadModule php5_module c:/php/php5apache2_2.dll Apache2.4系を使う場合はどのようにしたら良いのでしょうか。 展開したphpフォルダの中にphp5apacheで始まるdllファイルが存在しません。 php5apacheで始まるdllファイルを自分で用意して配置しないといけないのでしょうか。

  • PHPのユーザと権限

    apacheのモジュールとして実行するPHPを実行させるユーザを指定する方法か、PHPでファイルを新規作成した時に、そのファイルの所有者を指定する方法を教えてください。 apacheの設定ファイルかPHPの設定ファイルで何とかできませんか?

    • 締切済み
    • PHP
  • win2000のApacheサーバーにFTP

    win2000proにApache1.3.26を入れてイントラネットのサーバーを作っています。 ファイルやフォルダを共有するためFTPで接続できるようにしたいのですが(PHPのファイルアップロードではフォルダを作ったりできないので)、どうやっていいのかまったく見当がつきません。 FTPで接続できる方法を教えてください。

  • アクセス権限がない?!

    Windows 7を使用しています。Windows 8 Release Previewを試してみたくて、VHDを使用してインストールをしました。Windows 7側のユーザーフォルダ内にあるデータを参照しようとしたところ、アクセス権限が必要とでたのでWindows 8側で許可しました。そして、元に戻そうとWindows 8側のアクセス権限をすべて拒否にしてしまいました。 Windows 7側に戻ると、ユーザーファイルにアクセスできないようで、起動のたびに新規ユーザーのような状態で起動してしまいます。 仮にユーザー名を"A"とするなら、"A"のユーザーフォルダとは別に"TEMP"というフォルダが作成され、そちらにデスクトップやドキュメントなどのデータを格納しているようです。シャットダウンすると消えますので、完全に一時的なユーザーフォルダです。 "A"のユーザーフォルダにはWindows 7側でもWindows 8側でもアクセスできません。バックアップはとっていないため、大事なファイルや画像、音楽、Officeのデータなど、消えてこそいないもののアクセスできずに困っています。 私の知識不足が最大の原因ではありますが、アクセス権限を取得するにはどうしたらいいでしょうか? また、最悪データだけでもかまいませんが、Windows 7側では、従来のデスクトップの状態に復元することはできますでしょうか? 

  • chmod  と 所有者apache

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

    • ベストアンサー
    • PHP
  • CGIを実行した時に作ったファイルの所有者に関して

    Proftpdとapacheを用いてWebサーバを運用していますがCGIやPHPによって作られたファイルの所有者がapacheになってしまいFTPからファイルが削除できません。 hoge.hoge.comはhogeでCGIを実行し aa.hoge.comはaaでCGIを実行することはできないのでしょうか? バーチャルホストでCGIを実行するときは何か別に記述が必要なのでしょうか? ちなみにFTPDは User   nobody Group   nobody apacheは User apache Group apache このように設定してあります。

専門家に質問してみよう