私は私の/home/dotancohen/
ディレクトリを権限で維持することを好みます0750
。ただし、アクセスするにはApacheが必要です/home/dotancohen/someProject/public_html/
。ホームディレクトリ0755
とを~/someproject/
除くすべてのサブディレクトリを設定できることを知っていますが、___0
これは痛いです。~/someproject/public_html/
ホームディレクトリをそのままにしてApacheがこのディレクトリにアクセスできるようにするにはどうすればよいですか0750
?
私はシンボリックリンクを試しましたが、/war/www/someProject
Apacheが何をすることが/home/dotancohen/someProject/
できなくても、ユーザー(Apache)をグループに追加できると思いましたが、それはあまりにも多くの力を与えるようです。0750
/home/dotancohen/
www-data
dotancohen
あるいは、ネットワークファイルをアーカイブすることもできますが、/var/www/someProject/
他の理由で、私はそのファイルをホームディレクトリに保存することを好みます。
ベストアンサー1
さまざまなオプションが利用可能です。私が考えるのはそれぞれの長所と短所があります。
親ディレクトリでワールド実行ビットを設定できます。これにより、ファイルのフルパスを知っている人は誰でもそのファイルにアクセスできますが、他の人はアクセスできません。攻撃者が興味を持っている可能性があるため、厳密な権限を必要とするより厳しい権限(たとえば、//.bashrc、~/.gnupg、~/.Xauthorityなど)で保護されていない限り、よく知られているファイルはそのまま残ります。
ACLを活用して、より詳細なレベルで同じことを実行できます。たとえば、www-dataユーザーまたはグループにディレクトリへのアクセスのみを許可し、Webサーバーがリストを提供する必要があるすべてのディレクトリへの読み取り/実行アクセスを許可できます。コンテンツとファイルに対する読み取り権限を提供する必要があります。
www-data ユーザーを dotancohen グループに追加し、Apache がアクセスできるようにする項目を除くすべての項目に対するグループの権限を取り消すことができます。これはおそらく、できるだけ少なく開くことができる最も簡単な方法です。ただし、すでに他の目的でグループ権限を使用している場合は、より難しくなります。
あるいは、公に利用可能なファイルをホームディレクトリから完全に移動することもできます。これは権限の面で確かに最も簡単な設定であり、そうしないほど説得力のある理由がない限り、私が選択する選択です。設定や特定の要件に応じて、適切な所有権を持つ公開ルートで0750または0770権限を使用することが実用的かもしれません。これにより、自分とWebサーバーへのアクセスのみが制限されます。そのようなディレクトリツリー全体にわたって、自分の所有者、グループwww-data、および権限0710はできるだけ厳密にすることができますが、これはWebサーバーがそのディレクトリからアクセスするすべてのファイルのフルネームを知る必要があることを意味します。
ちなみに、FHS準拠への移行を検討することができます。/srv/varの代わりに。