Mac OS XでのApache 2サイトファイル/フォルダーの所有者/グループ/権限を修正しますか?


114

この質問に対するMac固有の回答をWebで見つけるのは難しいので、誰かがこの質問に答えてくれればいいのですが。私のアクセス許可は私のサイトで台無しにされており、まったく明らかに間違っているすべてに対して再帰的な777を非難するだけでそれらを修正する方法がわかりません。

ありがとう!

回答:


186

これは、~/my/web/root/Webコンテンツの架空のディレクトリについてここで説明するように、私が見つけた最も制限的で安全な方法です。

  • Webルートにつながる各親ディレクトリの場合(例えば~/my~/my/web~/my/web/root):
    • chmod go-rwx DIR (所有者以外はコンテンツにアクセスできません)
    • chmod go+x DIR (_wwwを含む「ユーザー」がディレクトリを「入力」できるようにするため)
  • sudo chgrp -R _www ~/my/web/root (すべてのWebコンテンツはグループ_wwwになりました)
  • chmod -R go-rwx ~/my/web/root (所有者以外はWebコンテンツにアクセスできません)
  • chmod -R g+rx ~/my/web/root (すべてのWebコンテンツが_wwwによって読み取り可能/実行可能/入力可能になりました)

他のすべてのソリューションでは、他のローカルユーザー(「staff」グループの一部であり、明らかに「o」/ othersグループに属している)にファイルを開いたままにします。これらのユーザーは、コンテンツの一部である場合、Web構成ファイルおよびスクリプト内のDB構成、ソースコード、またはその他の機密情報を自由に参照してアクセスできます。これが問題ではない場合は、簡単な解決策のいずれかを使用してください。


3
chmod go+rx DIRlsがアクセス許可エラーをスローしなくなる前に、/ Users / usernameディレクトリレベルでxフラグに加えて読み取りアクセス権を与える必要がありました。なぜだろう?
bhavinb 2012年

1
@mike、すべてのファイルとディレクトリは引き続きあなた(ユーザー)が所有し、引き続き書き込み可能です。chgrpでは、「_ www」グループのみがファイルを読み取ることができます。
dkamins 2013年

2
Webサイトスクリプトが独自のフォルダーを作成し、Webroot内に独自のファイルを書き込むことを期待するシステムの場合(多くのCMSが行うように)、_ wwwグループに書き込み権限を与える必要がありました。したがって、最後のステップはになりchmod -R g+rwx ~/my/web/rootます。これに@dkaminsを行うための異議やより良い方法はありますか?
Jpsy 2014年

1
@Jpsyアプリがそれ自体に書き込む必要がある場合、問題なく動作するはずです。他のコードが_wwwとしても実行されている場合(およびCMSコードを悪意を持って変更する可能性がある場合)、他の潜在的なセキュリティ問題が発生するため、注意してください。書き込み可能(g + w)をより深いサブディレクトリに制限できる場合は、さらに良い方法です。
dkamins 2014

1
これは数年前のことですが、時が経つにつれ、OS XはデフォルトのApacheサーバーの動作を時々変更することを好みます。したがって、このソリューションは引き続き機能しますが、現時点では、OS X自体を使用する代わりに、ローカルVMを作成してアプリをテストする代替ソリューションを強くお勧めします。参照:vagrantup.com
dkamins

30

本当にターミナルが気に入らない場合は、dkaminsのGUIで次のように伝えます。

1)ユーザーのホームディレクトリに移動し(ludoは私のものです)、[ファイル ]メニューから[ 情報 cmdIを見る]をインスペクターで選択します。

情報ウィンドウの共有と権限セクション

2)[+]記号をalt/optionクリックして_wwwグループを追加し、そのアクセス許可を読み取り専用に設定します

情報を取得すると、ユーザーとグループが強調表示され、World Wide Web Serverが強調表示されます

  • したがって、個人情報をユーザーのホームフォルダー(およびハードディスク)のルートに保存しないことを検討してください(適切な方法)!
  • ** everyone **グループに**読み取り専用**権限がある場合は、この手順を省略できますが、AirDrop ** / Public / Drop Box **フォルダーはほとんど役に立たないため...

3)ユーザーのSitesフォルダーのGet Infoインスペクターを表示し、手順2を再現してから、ギアアクションサブメニューから[ Apply to同封のアイテム... ]を選択します。

[情報を取得]アクションサブメニュー[囲まれたアイテムに適用...]を強調表示

Voilà3ステップとGUIのみの方法...


2
ここでは私を助けませんでしたが、ALT + [+]トリックについて知っておくと良いでしょう。ありがとう。
トム・

1
これはこれまでのところ最良の方法です。Alt+クリックで適切に_wwwユーザーが表示されます
CoolArts 2015年

これは、ゲストファイル共有をアクティブにするか、悪意のあるphpスクリプトをインストールしている場合に当てはまります。誰もが「読み取り可能」であるPublicおよびSitesフォルダーのみがあることを確認してください。ステップ3は「サイト」フォルダーにのみ適用されます...したがって、通常、他のフォルダーは変更しないでください...
llange

これは必要ありません。_wwwはEveryoneグループに属しています。
DarkNeuron 2016年

このaltについて知っておくと良い[+] !! Thx
レミグルモー

12

これは古い投稿ですが、Mountain Lion(10.8)にアップグレードして同様の問題が発生している場合FollowSymLinksは、{username} .confファイル(/ etc / apache2 / users /内)に追加するとうまくいきました。したがって、ファイルは次のようになります。

<Directory "/Users/username/Sites/">
  Options Indexes MultiViews FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

私は使用しない "git"というユーザーを作成しましたが、それはそのディレクトリ(git.conf)で利用できるすべてでした。ユーザーgitについて上記のようにファイルを更新したら、設定したディレクトリはApacheによって正しく提供されました。私のユーザーgitは作成されたディレクトリやApacheとは何の関係もないので、これは私には意味がありません。
ktamlyn 2013

9

2か月前のスレッドですが、遅くなることはありません。10.6では、Webサーバーのドキュメントフォルダーを次のように設定しています。

owner:root
group:_www
permission:755

_wwwは、Mac OS XでApacheを実行するユーザーです。次に、ACLを追加して、Administratorsグループに完全な権限を許可します。そうすれば、rootとして認証しなくても、管理ユーザーで変更を加えることができます。また、Webサーバーにフォルダーへの書き込みを許可する場合は、chmodを775に変更して、root:_www以外のすべてのユーザーに読み取り/実行権限のみを残します(適用したACLを除く)。


所有者を「root」に設定する必要はありませんが、無害です。あなたが持っているo + rxパーマは絶対に必要ありません-これにより、ローカルユーザーがすべてのWebコンテンツ(DBパスワードを使用した構成などを含む)を閲覧および読み取ることができます
dkamins

1
(以下のこの質問に対する私の回答を参照してください。これは、この回答のはるかに複雑なバージョンであり、セキュリティについてより偏執的な人には興味深いかもしれません)
dkamins

ターミナルでは、たとえば、ワードプレスが独自のメディアアップロードを書き込めるようにしたいので、ワードプレスが(独自のファイル権限に関して)インストールされたものをどのように確認しますか?
着陸

5

私の10.6システム:

vhosts folder:
 owner:root
 group:wheel
 permissions:755

vhost.conf files:
 owner:root
 group:wheel
 permissions:644

1
スティーブ、ウェブファイル自体に感謝します。/ Library / WebServer / Documents / Library / WebServer / Documents / [file] / Library / WebServer / Documents / [directory]
Fo。

0

私のユーザー所有者は管理ユーザーであり、グループは_wwwであり、dirとfiles 664のアクセス権を775に設定して動作します。


0

カタリナ更新/デスクトップ権限

私はmacOSで年に一度これに遭遇します。私は通常、デスクトップ上のフォルダーをホストするためにapache2を使用します。

desktopフォルダーへのアクセスを許可する場合は、httpdがすべてのフォルダーにアクセスできるようにするために、この手順に従う必要があります。https//apple.stackexchange.com/a/373139/353465


-3

最初にターミナルを開いてから、Webサーバーのディレクトリに移動します

cd /Library/WebServer/Documents

そして、これを入力して、あなたがすることはあなたが与えreadwrite許可することです

sudo chmod -R o+w /Library/WebServer/Documents

これはきっとうまくいきます!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.