ユーザーが新しいファイルを作成するときにデフォルトグループを設定しますか?


37

SSHで作成したファイルはjm:jm、たとえば所有者であるため、頻繁にファイルをchowningします。

次に、Apacheがアクセスできるようにするには、たとえばdoする必要がありますchown jm:www-data

ファイルを作成するときに、自分の名前でグループを使用する代わりに、別のファイルを指定するように指定できると確信しています。

または、ユーザー/グループを管理するより良い方法はありますか?

回答:


75

特定のディレクトリ内のすべての新しいファイルを特定のグループが所有する場合は、そのsetgidビットを適用します。

chgrp www-data /some/dir
chmod g+s /some/dir

この動作を適用するディレクトリの既存のツリーがある場合は、次のようにして実行できますfind

find /some/dir -type d -exec chgrp www-data {} +
find /some/dir -type d -exec chmod g+s {} +

(ディレクトリが関連するグループによって既に所有されている場合、これらの例の両方で最初のコマンドを省略できます)。


1
いい答えだ!記号の... {} +意味を明確にしてください。
アレクサンダーロミア

3
それらはfindコマンドの引数であり、manページで説明されています。最初の呼び出しでは、コマンドを実行しchgrp www-data、多くの結果を引数として追加します(結果ごとにコマンドを1回呼び出すのではなく、{} \;)。
ジェームズヘンストリッジ

6
なぜ使用しないのchmod g+s /some/dir -Rですか?テストしたところ、うまくいくようです。
Cragmonkey

13
@Cragmonkey:通常のファイルのsetgidビットも設定します。それらのいずれかが実行可能になった場合、これにより、システム上の別のユーザーがファイルを所有するグループの特権を取得できます。
ジェームズヘンストリッジ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.