ディレクトリ内の新しいファイルがグループに属していることを確認する


67

多数のユーザー(全員がmygroupなど)がファイルを作成および編集できる場合に、共有ディレクトリを作成したいと思います。このディレクトリとサブディレクトリ内のすべてのファイルをmygroupに所属させたい

既存のファイルを変更して、グループmygroupを使用するようchgrpにしましたが、新しいファイルはユーザーのプライマリグループに属します。chgrpを繰り返し実行せずに、新しいファイルがグループに属していることを確認する方法はありますか。

回答:


108

SetGIDビットを設定します。

chmod g+s dir

ディレクトリに作成されたすべての新しいファイルには、ディレクトリのグループに設定されたグループがあります。

スーパーユーザーのブログ投稿では、スティッキービットとその他のLinux許可ビットについて説明しました。

ただし、SetGIDはまったく異なるボールゲームです。ディレクトリにSetGIDビットが設定され、そのディレクトリ内にファイルが作成されると、ファイルのグループ所有権がディレクトリのグループになるように自動的に変更されます。


1
ありがとう。参照は便利です。画像の一部であるumaskコマンドについて説明します
-justintime

4
親ディレクトリのグループにも属する初期ディレクトリにサブディレクトリを作成するのはどうですか?これは可能ですか?
-daaxix

これは黙って失敗したときに@以下LukePHの答えは混乱されていないために重要である:使用sudoを
ルバーブ


11

フォルダーのグループが自分のものと異なる場合は、rootとしてchmodを実行する必要があるかもしれませんが、これを行う必要があることを示すエラーは表示されません。

須藤なし

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir

$ chmod g+s dir                                     # no errors

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir   # but nothing changed

$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar  9 10:51 nosudo        # and the group is set wrong

須藤と

$ sudo chmod g+s dir

$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar  9 10:44 dir   # the setgid bit is now on

$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke      0 Mar  9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar  9 10:51 withsudo # and the group is set right
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.