解決策 1:
setgid ファイル/バイナリは明らかに役に立たないかもしれませんが、setgid ビットがディレクトリに適用されると非常に便利だと思います。あなたが異なるワーキンググループの一員であり、それぞれが独自のUNIX(許可)グループを持っていると仮定します。その場合、プロジェクト フォルダーに setgid ビットを配置して、新しいファイルを作成するときに適切なグループ所有権が適用されることを確認し、そのプロジェクト グループの同僚がそれらのファイルにアクセスできるようにしたいと思うでしょうか?
解決策 2:
主な用途は、ファイルのツリーのグループ所有者を保持することです:
[[email protected] tmp]$ mkdir dir1 && touch dir1/file && mkdir dir1/dir
[[email protected] tmp]$ mkdir dir2 && chgrp staff dir2 && chmod 2755 dir2 && touch dir2/file && mkdir dir2/dir
[[email protected] tmp]$ ls -al dir1
total 32
drwxrwxr-x 3 lockie lockie 4096 Dec 13 19:32 .
drwxrwxrwt 125 root root 20480 Dec 13 19:32 ..
drwxrwxr-x 2 lockie lockie 4096 Dec 13 19:32 dir
-rw-rw-r-- 1 lockie lockie 0 Dec 13 19:32 file
[[email protected] tmp]$ ls -al dir2
total 32
drwxr-sr-x 3 lockie staff 4096 Dec 13 19:32 .
drwxrwxrwt 125 root root 20480 Dec 13 19:32 ..
drwxrwsr-x 2 lockie staff 4096 Dec 13 19:32 dir < note new dir is g+s, owned by "staff" group, so the setgid behaviour acts recursively
-rw-rw-r-- 1 lockie staff 0 Dec 13 19:32 file < note new file is owned by "staff" group
[[email protected] tmp]$
これは、さまざまなユーザーがディレクトリの下でファイル/ディレクトリを作成/編集する環境で役立つ傾向があります:すべてのファイル/ディレクトリが同じグループを共有している場合、すべてのユーザーがファイル/ディレクトリを編集/変更できます (権限が許可されている場合):これにより、状況が回避されます。 「xyz はファイル abc を所有しているため、編集できません」など。
この方法で setgid を使用する代わりに、grpid を使用できます ファイルシステムのマウントオプション。
マンマウントから:
<ブロック引用>grpid または bsdgroups / nogrpid または sysvgroups
これらのオプションは、新しく作成されたファイルが取得するグループ ID を定義します。 grpid が設定されている場合、それが作成されたディレクトリのグループ ID を取ります。それ以外の場合 (デフォルト) は、ディレクトリに setgid ビットが設定されていない限り、現在のプロセスの fsgid が取得されます。この場合、親ディレクトリから gid が取得され、ディレクトリ自体の場合は setgid ビットが設定されます。 /P>
有効にすると、grpid マウントされたファイルシステムで作成されたファイル/ディレクトリも、親ディレクトリのグループを継承します:
[[email protected] ~]$ mount | grep /home
/dev/mapper/VolGroup00-home on /home type ext3 (rw,grpid)
[[email protected] ~]$ mkdir dir3 && touch dir3/file && mkdir dir3/dir
[[email protected] ~]$ ls -al dir3
total 12
drwxrwxr-x 3 lockie users 4096 Dec 13 19:37 .
drwxrwxr-x 12 lockie users 4096 Dec 13 19:37 ..
drwxrwxr-x 2 lockie users 4096 Dec 13 19:37 dir < inherited "users" group from parent dir
-rw-rw-r-- 1 lockie users 0 Dec 13 19:37 file < inherited "users" group from parent dir
[[email protected] ~]$
grpid を使用して見つけました このオプションは、人的ミスの可能性を適切に減らします (ディレクトリのパーミッションに関係なく、ファイルシステムが機能するため)。