2

私は共有 Web 開発環境で作業しています。私のチームはサーバー上に新しいファイルとフォルダーを頻繁に作成しますが、後でグループのアクセス許可を変更する必要があります。

新しいファイルのデフォルトのパーミッションとして、bashrc で umask 002 を設定しました。ただし、新しいディレクトリのデフォルトのアクセス許可の場合:

$ sudo chmod g+s /var/www

/var/www 内の新しいディレクトリは次のように表示されます。

drwxrwsr-x 2 ユーザー www-data 4096 2010-10-14 08:49 テスト

現在、このセットアップは正しく機能します。つまり、新しいファイルとディレクトリはデフォルトでグループ書き込み可能です。このセットアップで sgid を使用する場合、セキュリティ上の問題はありますか? setuid のリスクを完全には理解していないため、特に注意してください。

4

1 に答える 1

2

あなたの設定についての私の理解では、作成されたすべてのファイルはパーミッション 0775 であるということです。SGID (グループ ID の設定) ビットを /var/www ディレクトリに設定すると、その中に作成されたファイル/ディレクトリは既存のグループ所有者を継承するのではなく強制的に継承されます。それを作成する所有者よりも。SUID (Set User ID) ビットに関しては、私があなたの説明を間違えない限り、あなたがそれを使用しているようには見えません。

「www-data」グループ (デフォルトの Apache グループ) のすべてのユーザー パーツがあり、それによってすべてがスムーズに実行されていると仮定しています。

私が見たセキュリティ リスクは、Apache ('www-data' グループの一部) が Web ルート フォルダの下のすべてのファイルに完全にアクセスできるようになったことです。公開スクリプトにセキュリティ ホールがある場合、または Apache がなんらかの理由で侵害された場合、(少なくとも) /var/www フォルダー全体が無防備になります。

代わりに、別のグループ (「開発者」など) を作成し、チームをその一部にします。/var/www フォルダのグループ所有者を「developers」に変更し、Apache をデフォルトのアクセス (ディレクトリの場合は「rx」、ファイルの場合は「r--」) のままにし、必要な場所 (キャッシュ、キャッシュ、アップロードなど)。

これが私の最初の応答/回答であり、就寝時間を過ぎていることを願っています:)

于 2010-10-26T06:32:36.350 に答える