web-dev-qa-db-ja.com

www-dataを新しく作成されたファイルとフォルダの所有者とグループにします

私は実行していますbuntu 16.04

www-dataグループ内にいて、サーバー上でファイルを作成/変更するユーザーが何人かいます。

それらをser1およびser2と呼びます。

ser1またはser2/var/www/sites/domain1.com/public内にフォルダまたはファイルを作成するときはいつでも所有者とグループをデフォルトでwww-dataにします。ファイルに664のアクセス許可を持たせ、フォルダーに775のアクセス許可を持たせたいです。

したがって、user1がログインして、test-file.txtというファイルを作成するとします。

私が実行した場合:

ls -l on /var/www/sites/domain1.com/public

出力を次のようにしたいと思います。

-rw-rw-r-- www-data www-data test-file.txt

これはsetfaclで実行できると思いますが、コマンドが何であるか、またはより良い方法があるかどうかはよくわかりません。

2
bigmike7801

ディレクトリのアクセス許可を775から2775に変更すると、必要なもののほとんどが得られます。 2set group IDを意味し、ディレクトリで使用される場合、そのディレクトリ内に作成された新しいオブジェクトは、プロセスの現在のグループを取得するのではなく、ディレクトリのグループを継承することを意味しますオブジェクトを作成しました。

ディレクトリがまだグループによって所有されていない場合www-data権限を変更する前に、まずグループを変更する必要があります。

さらに、各ユーザーのumaskが02であることを確認する必要があります。これがデフォルトであるため、ユーザーが変更しない限り、すでに正しい値になっています。

上記を実行すると、ファイルの所有者を変更することを除いて、要求したすべてがカバーされます。その違いが重要である使用シナリオに出くわしたことはありません。ファイルの所有者に、誰がファイルを作成したかを示すことが役立つ場合があります。

まったく異なるアプローチは、ソース管理システムを使用して、ソース管理からファイルの更新をプッシュするためのプロシージャを作成することです。複数の人が同じファイルを更新する必要がある場合、ソース管理の使用は大きな助けになります。

2
kasperd