man chmod
から :
2000 (the setgid bit). Executable files with this bit set will
run with effective gid set to the gid of the file owner.
775 の前の 2 は setgid
です または「グループ ID」。
setgid
とは (グループ ID を設定) ビットの使用目的
setgid はファイルとディレクトリの両方に影響します。
<オール>setgid パーミッションがディレクトリに適用されると、このディレクトリに作成されたファイルは、ディレクトリが属するグループに属します。ディレクトリへの書き込み権限と実行権限を持つすべてのユーザーが、そこにファイルを作成できます。ただし、ファイルは、ユーザーのグループ所有権ではなく、ディレクトリを所有するグループに属します。そのディレクトリ内のファイルは、親ディレクトリのグループと同じグループになります。
ファイルで使用すると、それを実行したユーザーのグループの権限ではなく、ファイルを所有するユーザーのグループの権限で実行されます。
ソース:
https://www.geeksforgeeks.org/setuid-setgid-and-sticky-bits-in-linux-file-permissions/https://docs.oracle.com/cd/E19683-01/816-4883/secfile- 69/index.html
グループ ID の詳細:
ログイン時のパスワードファイル (/etc/passwd
) はログイン ユーザー ID を検索し、数値のユーザー ID と 1 つの初期グループ ユーザー ID を特定します。グループ ファイル (/etc/group
) 次に、他のグループ ID (ある場合) を割り当てます。次に、システムは、一意の数字のユーザー ID として実行されるシェルを起動し、すべての数字のグループ ID (1 つ以上) のアクセス許可も持っています。
ソース:http://teaching.idallen.com/cst8207/13w/notes/500_permissions.html#users-one-user-id-and-multiple-group-ids
ディレクトリにグループ ID を設定する方法:
chmod 2775 /var/www
2
775
の前 /var/www の所有者であるグループが、そのディレクトリに作成されたすべての新しいファイル/フォルダーにコピーされます。
2 以外のオプションもあります:
0: setuid, setgid, sticky bits are unset
1: sticky bit is in place
2: setgid bit is in place
3: setgid and sticky bits are in place
4: setuid bit is in place
5: setuid and sticky bits are in place
6: setuid and setgid bits are on
7: setuid, setgid, sticky bits are activated
ソース:http://www.dba-oracle.com/t_linux_setuid_setgid_skiky_bit.htm
グループ ID は、/etc/group ファイル内のグループ名で確認できます:
group_name:password:GROUP_ID
グループ パスワードの詳細:https://unix.stackexchange.com/a/46518/205850