ACL 経由で w/r アクセスを正常に達成するにはext4 fsを使用した外部ストレージリポジトリのファイルにデフォルトのグループIDを割り当てる必要があります。
LSB_5.0.0説明する:
This specification makes no attempt to numerically assign user or group
identity numbers, with the exception that both the User ID and Group ID
for the user root shall be equal to 0.
Linuxベンダーへの恥です!
主要なLinuxディストリビューションにはグループIDのルールはありますか?
Debianポリシーでは、base-passwd
ファイルのパッケージにデフォルトのグループ値が定義されていることがわかりました/usr/share/base-passwd/group.master
。これらのグループのうち、ACL のデフォルトに適したグループは次のとおりです。
tape:*:26:
backup:*:34:
operator:*:37:
plugdev:*:46:
staff:*:50:
users:*:100:
nogroup:*:65534:
Suse / RH / Slackware配布ポリシーのドキュメントでは使用されません... FreeBSD / OpenBSD / MacOSがLinuxディストリビューションとルールを共有している場合も興味深いでしょう。
修正するMacOS X()をDebianと比較しましたが、dscacheutil -q group
いくつかのグループIDのみが一致しました。
sys:*:3:
アップデート2FreeBSDとDebian/etc/group
ファイルを比較しましたが、2つだけが一致しました。
daemon:*:1:
sys:*:3:
答え1
ご存知のように、ユーザー名-uidおよびグループ名-gidマッピングの標準はありません。基本システムの一部ではない共通システムアカウントであっても、同じオペレーティングシステムを実行しているシステムでは、異なるuidまたはgidを持つことができます。これはパッケージがインストールされている順序によって異なります。これらのパッケージは通常、インストールgetent passwd username || useradd username
中にのみ使用されます。
したがって、最良の選択肢は、システム範囲外で一意のuidとgidを選択することです。
/etc/login.defs
一部のシステムには、次の項目などを含む設定ファイルがあります。
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
SYS範囲外の項目を選択してください。 1つの可能性は、サイト全体の管理に59001..59999の範囲を使用することです。その後、login.defs
競合を避けるためにファイルを編集して、UID_MAXとGID_MAXを59000に設定できます。
答え2
グループIDのルールはありません。承認設定は通常ローカルポリシーの一部と見なされ、通常は/etc/passwd
ローカルまたはファイル内のエントリに関連付けられません/etc/group
。
承認決定に使用されるグループは通常、集中型ディレクトリ(LDAP、ADなど)から来ており、組織によって異なり、使用される展開(またはオペレーティングシステム)とは関係ありません。
答え3
Debian、Ubuntu、RedHat、Fedora、CentOS、Suse、FreeBSD、OpenBSD、NetBSD、MacOSX、Solarisでこのsys
グループ共有IDを見つけました。3
他のグループ名は同じIDを共有しません。一部のシステムでもroot
実際にidがあるグループはLinuxでは一般的ですが、NetBSDではそうです。ディストリビューションごとに、このグループに対して人間が読める名前が異なります(例:(Debian)、(RedHat)、(FreeBSD)、(MacOS))。0
wheel
nogroup
65534
32766
nogroup
nfsnobody
nobody
nobody
POSIX、SUSv4、LSBなどの仕様はグループIDを定義しません。
sys
Debian ドキュメントでは廃止予定とマークされています。
sys
グループ、ビット、および ACL を使用すると、setgid
次の条件で特権の競合なしにホスト間で ext4 ボリュームを移動できます。
$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir