php touchで作成したファイルはrootに属するのでしょうか? ? ?変更方法

WBOY
リリース: 2016-06-23 14:12:27
オリジナル
1233 人が閲覧しました

環境:
os = debian linux
php = apt-get で自動的にインストールされる php5
Web サーバー = lighttpd 設定ファイルは単純で、php のパスを設定するだけで、php を実行できます

Linux には root という 2 人のユーザーがいますそして foo
php と lighttpd は root ユーザーによってインストールされます
Web サイトのルート ディレクトリとその下のすべてのファイルとディレクトリは foo に属します

しかし、ここで問題が発生します - -!
コードの文: foo.php

<?php touch("foo.xml")?>
ログイン後にコピー


ブラウザを使用して foo.php にアクセスすると、foo.xml が root に属していることがわかります

この設定の問題がどこにあるのか誰か教えていただけますか? ? ?



ディスカッションへの返信(解決策)

投稿数 30,028
場所オーストラリア、シドニー


Posted 29 December 2009 - 06:30 PM

私が通常 Debian システムをセットアップする方法は次のとおりです。

1) root として、「www」という名前の新しいグループを作成し、そのグループ内に自分を配置し、ログアウトして再度ログインして有効にします。
sudo gpasswd -a www
logout

2) /var/www ディレクトリ構造全体を「www-data」および「www」グループが所有するようにします。「www」グループに属するユーザーに書き込み権限を与え、このディレクトリ構造のグループにスティッキー ビットを設定します。作成された新しいディレクトリには、これらと同じ権限が適用されます。
sudo chown -R www-data:www /var/www
sudo find /var/www -type f -exec chmod 664 {} ; sudo find /var/www - type d -exec chmod 775 {} ;
sudo find /var/www -type d -exec chmod g+s {} ;

これで、/var/www 内にディレクトリとファイルを手動で作成するための十分な権限が付与されます。ただし、これらのディレクトリをサーバー プロセスで書き込み可能にしたい場合は、www-data:www にディレクトリを書き込む必要があります。Apache プロセスによって作成された新しいディレクトリは、自動的に www-data:www によって所有されます。

3) 「www」グループ内のユーザーが、/var/www 内で所有するディレクトリを「www-data:www」によって所有されるように変更できるようにします

sudo sudoedit /etc/sudoers

次に、次の行を追加します。 .....

%www ALL = NOPASSWD: /bin/chown www-data /var/www/*, /bin/chown -R www-data /var/www/*

これは ' 内のユーザーを意味しますwww' グループが実行できるようになりました...

sudo chown www-data /var/www/

を実行して、Apache プロセス経由で書き込み可能にする

これで基本的には完了です。単純に www-data グループに参加して /var/www にスティッキー ビットを設定したいと考えていますが、通常は、すべてのディレクトリが Apache プロセスによって書き込み可能になるようにする必要はありません。 ://proemframework.org | http://github.com/trq

SmtpCatcher - PHP メール スクリプトのテストに役立つ非常に単純な模擬 sendmail

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート