내가 그것을 읽은 후에돕다. 나는 그들 사이에 큰 차이가 없다고 본다.
-g, --gid 그룹
사용자의 초기 로그인 그룹의 그룹 이름 또는 그룹 번호입니다. 그룹 이름이 있어야 합니다. 그룹 번호는 기존 그룹을 참조해야 합니다.
-G, --그룹 GROUP1[,GROUP2,...[,GROUPN]]]
사용자가 구성원이기도 한 보조 그룹 목록입니다. 각 그룹은 공백 없이 쉼표로 다음 그룹과 구분됩니다. 이러한 그룹에는 -g 옵션으로 지정된 그룹과 동일한 제한이 적용됩니다. 기본적으로 사용자는 초기 그룹에만 속합니다.
동일하다면. 왜 그것들은 모두 존재하는가?
답변1
-g
초기 또는 기본 그룹을 설정합니다. 이는 의 그룹 필드에 나타나는 내용입니다 /etc/passwd
. 많은 배포판에서 기본 그룹 이름은 사용자 이름과 동일합니다.
-G
보충 또는 추가 그룹을 설정합니다. /etc/group
사용자 계정이 나열되는 그룹 입니다 . 여기에는 등 의 그룹이 포함될 수 있습니다 sudo
.staff
답변2
그들은 다르다. 이 -g
옵션은 사용자가 속해야 하는 "기본" 그룹을 지정하는 반면, 이 -G
옵션은 하나 이상의 보조("보조") 그룹을 지정합니다.
내가 액세스할 수 있는 업무용 기계에서
$ id
uid=1001(me) gid=1001(me) groups=1001(me),27(sudo),110(lxd),1005(theproject)
이는 내 "기본" 그룹이 me
(내 사용자 이름과 동일)임을 나타냅니다. 그러나 나는 또한 몇몇 소수 그룹의 회원이기도 합니다.
sudo
예를 들어, 이 그룹 의 멤버십을 사용하면 해당 명령을 사용하여 이 특정 시스템에 구성된 방식으로 인해 시스템에 끔찍한 일을 수행할 수 있습니다 .sudo
sudo
/etc/sudoers
이 그룹의 회원 자격을 theproject
통해 다른 사람들과 함께 작업 중인 프로젝트에서 읽기/쓰기 가능한 그룹 파일을 수정할 수 있습니다.
생성된 파일은 일반적으로 기본 그룹에 자동으로 할당됩니다.
답변3
적용되는 그룹 -g
은 기본 그룹이므로, 예를 들어 파일을 생성할 때 해당 파일과 연결된 그룹으로 기본 그룹과 함께 해당 그룹이 기본값으로 지정됩니다. 그러나 sg
또는 명령을 사용하여 기본적으로 사용되는 그룹을 임시로 변경할 수 있습니다 newgrp
. 의 모든 그룹은 -G
보조 그룹입니다. 이에 대한 추가 정보여기