useradd의 -g 옵션과 -G 옵션의 차이점은 무엇입니까

useradd의 -g 옵션과 -G 옵션의 차이점은 무엇입니까

내가 그것을 읽은 후에돕다. 나는 그들 사이에 큰 차이가 없다고 본다.

-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예를 들어, 이 그룹 의 멤버십을 사용하면 해당 명령을 사용하여 이 특정 시스템에 구성된 방식으로 인해 시스템에 끔찍한 일을 수행할 수 있습니다 .sudosudo/etc/sudoers

이 그룹의 회원 자격을 theproject통해 다른 사람들과 함께 작업 중인 프로젝트에서 읽기/쓰기 가능한 그룹 파일을 수정할 수 있습니다.

생성된 파일은 일반적으로 기본 그룹에 자동으로 할당됩니다.

답변3

적용되는 그룹 -g은 기본 그룹이므로, 예를 들어 파일을 생성할 때 해당 파일과 연결된 그룹으로 기본 그룹과 함께 해당 그룹이 기본값으로 지정됩니다. 그러나 sg또는 명령을 사용하여 기본적으로 사용되는 그룹을 임시로 변경할 수 있습니다 newgrp. 의 모든 그룹은 -G보조 그룹입니다. 이에 대한 추가 정보여기

관련 정보