Linux 배포판에 미리 정의된 그룹 ID가 있습니까?

Linux 배포판에 미리 정의된 그룹 ID가 있습니까?

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 범위 밖의 항목을 선택하세요. 한 가지 가능성은 사이트 전체 관리에 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)).0wheelnogroup6553432766nogroupnfsnobodynobodynobody

POSIX, SUSv4, LSB 등의 사양은 그룹 ID를 정의하지 않습니다.

sys데비안 문서에서는 더 이상 사용되지 않는 것으로 표시되어 있습니다.

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

관련 정보