web-dev-qa-db-ja.com

ホームディレクトリにアクセスせずに、ホームディレクトリ内のサブディレクトリへのApacheアクセスを許可する

暗号化されたホームディレクトリを使用してUbuntu 11.04デスクトップを実行しています。私は自分のコンピューターで開発作業を行っており、webrootディレクトリをホームディレクトリ内に置きたいので、ホームディレクトリの残りの部分で暗号化されます。私はマシンの唯一の使用者なので、これを直接指すようにApacheを構成したいと思います。

現在、私は/var/wwwフォルダーを私のhon dirのワークスペースへのシンボリックリンクに変更しました:/home/valorin/workspace

ただし、これはApacheで403 Forbiddenエラーをスローします。

ユーザーをwww-dataグループに追加し、ワークスペースフォルダーの所有権と権限を設定しました。

drwxrwxr-x  2 valorin www-data  4096 2011-04-23 10:02 workspace

しかし、私がそれを機能させるための唯一の方法は、ホームディレクトリグループをwww-dataに変更し、パーミッションも設定することです。これは、Apacheが私のホームディレクトリにアクセスできることを意味し、ネットワーク上の誰かが個人データにアクセスする可能性があることを意味するため、実際にこれを行いたくありません。

誰も私がこの問題を解決する方法を知っていますか?

4
Stephen RC

$ HOMEディレクトリの所有権はそのままにしておくことができます。 www-dataに設定する必要はありません。 doで行う必要があるのは、Apacheが$ HOMEおよびその上のすべてに対する実行権限を持っていることを確認することです。したがって、次のようなことができます。

chmod 751 "$HOME"
Sudo chmod 751 /home

ただし、$ HOMEが暗号化されているという事実は、適切な復号化キーを使用するようにApacheを何らかの方法で構成できない限り、Apacheに大きな問題を引き起こす可能性があります。

編集:

ディレクトリに実行権限を設定するということは、その名前がす​​でにわかっていて、アクセスしようとしているものにも正しい権限がある場合にのみ、ディレクトリ内の何かにアクセスできることを意味します。したがって、他のすべてのファイルに適切なアクセス許可がある限り、$ HOMEにグローバルxビットを設定してもセキュリティ上のリスクはそれほど大きくありません。確認するために、umaskを調べてください。

7
Scott Severance