web-dev-qa-db-ja.com

Unixパーミッション-「所有者グループ」とは正確に何ですか(注:単数形)?

Fuseファイルシステムをプログラミングしています。
これまでのところ、解決できない問題は発生していません(パフォーマンスを除く)。

ただし、次の記事を読みました。
http://linuxcommand.org/lts0070.php
http://www.perlfect.com/articles/chmod.shtml
http://mason.gmu.edu/~montecin/UNIXpermiss.htm
http://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions
http://www.tutorialspoint.com/unix/unix-file-permission.htm
https://kb.iu.edu/d/abdb

そして、私は次の質問を持っています:
汎用のunix-permission-stringを指定すると-
文字列(最初の文字の後)が3つのグループ(rwx)に分割されていることがわかります

owner
owner_group
all/world/anyone

ただし、記事の1つには、1人のユーザーがN個のグループに所属できることが明記されています。
それでは、なぜ所有者group(グループではない)の単数形なのでしょうか?私(ファイル作成者、したがって所有者)がseveralグループに属している場合、所有者グループとは正確には何ですか?

私はグループA、グループB、グループCのメンバーだとしましょう。
今、どこかにファイルを作成します。

式owner_groupは単数形であり、複数形ではないため、どのグループにowner_group権限が適用されますか?
AXORBXORC 、またはそれらのすべて、またはそれらのどれも?
1つだけに適用される場合(単数形が示すように)、どのグループに権利が割り当てられているかをどのように判断しますか?

ここで何かを本当に理解していない、または「所有者グループ」という用語の意味を誤解しているという明確な感覚があります。

4
WitchCraft
  • ユーザーは複数のグループのメンバーである場合があります。
  • ファイルは、1つのグループと1人のユーザーによって所有されます。
  • ユーザーがファイルの所有者グループのメンバーである場合(つまり、グループfooがファイルを所有しており、ユーザーのグループの1つがfooである場合)所有者の許可)。

所有者グループは、ファイルの所有権の一部です。考慮してください:

$ stat /usr/bin/crontab 
  File: ‘/usr/bin/crontab’
  Size: 35984       Blocks: 72         IO Block: 4096   regular file
Device: 803h/2051d  Inode: 131439      Links: 1
Access: (2755/-rwxr-sr-x)  Uid: (    0/    root)   Gid: (  103/ crontab)
Access: 2015-02-05 20:20:43.438507538 +0530
Modify: 2013-02-09 12:32:23.000000000 +0530
Change: 2014-09-30 19:22:09.508515013 +0530
 Birth: -

これは、ファイルの所有権がユーザーrootおよびグループcrontabにあることを示しています。

私がグループA、グループB、およびグループCのメンバーだとします。今、どこかにファイルを作成します。 ... [どのグループに所有者グループのアクセス許可が適用されますか?]

それは、そのファイルを作成した時点でのプライマリグループの内容によって異なります。プライマリグループは、groupsコマンドを実行したときにリストされる最初のグループです。通常、これはGIDによって決定されます。ただし、newgrpコマンドを使用して、一時的に他のグループの1つをプライマリとして設定できます。例えば:

$ groups 
muru adm cdrom Sudo dip plugdev lpadmin sambashare
$ rm foo; touch foo
$ stat -c %G foo  # this prints the owner group of the file
muru
$ newgrp Sudo   
$ rm foo; touch foo
$ stat -c %G foo
Sudo

ここで何かを本当に理解していない、または「所有者グループ」という用語の意味を誤解しているという明確な感覚があります。

所有者グループがユーザーではなくファイルの属性であること。

文字列(最初の文字の後)が3(rwx)のグループに分割されていることを理解しています

owner
owner_group
all/world/anyone

少しオフ:3番目のフィールドはothersであり、allではありません。 その他は、ファイルの所有者とファイルの所有者グループのメンバーを除く全員を対象としています。区別は、chmodでシンボリックモードを使用するときに有効になります。

  • chmod a-xは、全員の実行権限を奪います
  • chmod o-xは、所有者と所有者グループの実行許可をそのままにして、他のすべての実行許可を削除します。

最後に、ユーザーのプライベートグループに関するメモ。 UPGはデスクトップシステムではかなり一般的ですが、他の場所では当たり前とは見なされません。 UPGが有効になっている場合、ユーザーのプライマリグループとユーザー名が同じ数値のIDと名前を持ち、各ユーザーに一意のグループがある可能性があります。以上です。

12
muru