Apacheドキュメントルートの最適な権限/所有権


14

Apacheドキュメントルートの正しいアクセス許可または所有権を設定するためのヘルプが必要です。必要なものは次のとおりです。

  • に保存されているさまざまなウェブサイト /var/www/html/<site>
  • 2人のユーザーがsshを使用してWebサイトを更新/管理する必要があります
  • 所有権はApacheユーザーとは異なる必要があります(セキュリティのため)

これどうやってするの?現時点では、すべてのファイルは誰でも書き込み可能です。これは良くありません。サーバーはCentOS 5.5を実行します

ありがとう


ドキュメントルートを確保するための他のオプションと、より詳細な回答は、以下を参照してくださいserverfault.com/questions/357108/...
クインComendant

私はそれが別の場所に各ウェブサイトを保存する方が良いと思う(DocumentRootの、使用2つの仮想ホストの両方を入れないでください)その後、各システム管理者ユーザは唯一の彼自身のウェブサイトを所有し、Apacheグループとして両方のウェブサイトのディレクトリのグループ所有者を設定します
会計士

回答:


22

新しいグループを作成する

groupadd webadmin

ユーザーをグループに追加します

usermod -a -G webadmin user1
usermod -a -G webadmin user2

サイトディレクトリの所有権を変更する

chown root:webadmin /var/www/html/

サイトディレクトリのアクセス許可を変更する

chmod 2775 /var/www/html/ -R

これで誰でもファイル(apacheユーザーを含む)を読み取ることができますが、rootとwebadminのみがコンテンツを変更できます。


それはよさそうだ。しかし、ユーザーが新しいファイルを作成するか、更新されたファイルをコピーするとどうなりますか。これらの権限は自動的に適用されますか?または、彼は毎回chownとchmodする必要がありますか?
マルコ

コピーされたファイルは、許可/所有権を維持します。新しいファイルのデフォルトのファイル許可は、umaskコマンドによって処理されます。詳細はこちらosr507doc.sco.com/en/OSUserG/_default_perms_new_file.html-
アンディ

3
あなたは、新しいファイルを支援するディレクトリのsetgidのWebAdminを作ることができる
covener

1
^ +1。簡単な方法は次のとおりです。>> chmod 2775 -R / var / www / html /
James Broadhead

@James ta、更新
アンディ

2

-o aclでパーティションをマウントすることを好みます。これにより、user-group-other権限のみを指定するのではなく、setfaclコマンドを使用して、ファイルおよびフォルダーに対するきめの細かい権限を設定できます。

したがって、/ etc / fstabのパーティション行にaclを入力するか、mount -o remount、acl / mnt / xyで再マウントしてから、Webディレクトリの所有権をnobody:nobodyに付与します。Chmodを770に設定し、setfaclを使用して、それを必要とするフォルダーのみに書き込み許可を与えます。www-data(またはWebサーバーを実行するユーザー)にアップロードフォルダーの書き込み権限を付与し、ディレクトリ全体の書き込み権限を自分のユーザーに付与します。

mkdir dir
chown nobody:nobody dir
setfacl -m u:www-data:r-x,d:u:www-data:r-x dir
setfacl -m u:www-data:rwx,d:u:www-data:rwx dir/upload
setfacl -m u:youruser:rwx,d:u:youruser:rwx dir

これで、あなたのファイル、ウェブサーバー、そしてあなた自身のユーザーを誰も読むことができなくなります。フォルダー内のすべてのファイルに書き込むことができ、Webサーバーはアップロードフォルダーにのみ書き込むことができます。

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