GNU/Linux >> Linux の 問題 >  >> Linux

setgid ディレクトリの目的は何ですか?

解決策 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 を使用して見つけました このオプションは、人的ミスの可能性を適切に減らします (ディレクトリのパーミッションに関係なく、ファイルシステムが機能するため)。


Linux
  1. Linuxのユーザーホームディレクトリの下にある.bash_profileファイルの目的は何ですか

  2. Linuxでの.bashrcファイルの目的は何ですか

  3. *nixでディレクトリを空にする最も安全な方法は何ですか?

  1. opt とは (opt ディレクトリのように) どういう意味ですか?略語ですか?

  2. ホームディレクトリを暗号化するポイントは何ですか?

  3. Linuxでの理想的なホームディレクトリのアクセス許可はどうあるべきか

  1. コロンビルトイン「:」はどのような目的に役立ちますか?

  2. Linux でサフィックス .d は何を意味しますか?

  3. Kubernetes apply -f - の末尾の「-」の目的は何ですか?