Linuxで、ディレクトリに作成されたすべての新しいファイルを、作成中のユーザーのグループではなく、ディレクトリのグループが所有するようにする方法はありますか?
もし、あんたが chmod g+s directory
すると、そのディレクトリに作成されたすべてのファイルがそのグループに所有されます。
newgroup
は、実際には1つのグループにしか所属できなかった時代からの持ち越しであり、現在では実際には必要ありません。
ユーザーが作成したファイルは、現在のグループIDで作成されます。ユーザーIDを確認するには、id
;を実行します。グループのリストからGIDを変更するには、newgrp <group>
またはsg <group> <command>
を使用します。最初のコマンドはシェルを起動し、後者はGIDを<group>
idに設定してコマンドを実行します。
このシェルの「ログ」を確認してください:
whitequark@forth:~/test$ id
uid=1000(whitequark) gid=1000(whitequark) groups=4(adm),20(dialout),24(cdrom),
46(plugdev),104(lpadmin),114(admin),118(sambashare),1000(whitequark)
whitequark@forth:~/test$ touch file1
whitequark@forth:~/test$ ls -la
total 8
drwxr-xr-x 2 whitequark whitequark 4096 2010-01-29 19:49 .
drwxr-xr-x 82 whitequark whitequark 4096 2010-01-29 18:02 ..
-rw-r--r-- 1 whitequark whitequark 0 2010-01-29 19:49 file1
whitequark@forth:~/test$ newgrp admin
<<< at this point a new Shell is started >>>
whitequark@forth:~/test$ touch file2
whitequark@forth:~/test$ ls -la
total 8
drwxr-xr-x 2 whitequark whitequark 4096 2010-01-29 19:49 .
drwxr-xr-x 82 whitequark whitequark 4096 2010-01-29 18:02 ..
-rw-r--r-- 1 whitequark whitequark 0 2010-01-29 19:49 file1
-rw-r--r-- 1 whitequark admin 0 2010-01-29 19:49 file2