Linux에서 사용자의 기본 그룹을 어떻게 변경합니까?


41

리눅스 관리에 익숙하지 않기 때문에 다음 명령에 대해 약간 혼란스러워합니다.

useradd
usermod
groupadd
groupmod

Linux / Unix Administrator 's handbook에서 사용자 관리 책을 읽었으나 약간 흐릿합니다.

기본적으로 useradd충분히 간단 해 보입니다.

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

username과 함께 "David Hilbert"를 추가 hilbert하고 기본 디렉토리, 셸 및 그룹을 설정할 수 있습니다. 저는 이것이 -g그의 기본 / 기본 그룹이고 -G다른 그룹 이라고 생각합니다 .

다음은 내 다음 질문입니다.

  1. 이 명령은 여전히 작업 그룹겠습니까 경우 faculty와는 famous존재하지 않았다? 그냥 만들까요?
  2. 그렇지 않은 경우 새 그룹을 만드는 데 어떤 명령을 사용합니까?
  3. 사용자를 제거 hilbert했는데 해당 그룹에 다른 사용자가없는 경우에도 계속 존재합니까? 제거해야합니까?
  4. useradd위 의 명령을 실행 한 후 famous그룹 에서 David를 제거 하고 hilbert아직 존재하지 않는 기본 그룹을 다시 할당 하려면 어떻게해야 합니까?

답변:


27

usermod명령을 사용하면 사용자의 기본 그룹, 보충 그룹 또는 기타 여러 속성을 변경할 수 있습니다. -g스위치는 기본 그룹을 제어합니다.

다른 질문들 ...

  1. 스테이지 groupname중에 존재하지 않는 그룹을 지정하면 다음과 useradd같은 오류가 발생합니다. useradd : unknown group groupname

  2. groupadd명령은 새 그룹을 만듭니다.

  3. 그룹에 포함 된 모든 사용자를 제거해도 그룹은 그대로 유지됩니다. 빈 그룹을 반드시 제거 할 필요는 없습니다.

  4. hilbert를 통해 그룹을 만듭니다 groupadd hilbert. 그런 다음을 사용하여 David의 기본 그룹을 이동하십시오 usermod -g hilbert hilbert. (첫 번째 hilbert는 그룹 이름이고 두 번째 hilbert는 사용자 이름입니다. 이는 다른 이름을 가진 그룹으로 사용자를 이동하는 경우에 중요합니다)

그래도 여기서 약간 복잡하게 만들 수 있습니다. 많은 Linux 배포판에서 단순 useradd hilberthilbert기본 사용자 와 동일한 이름 의 사용자 및 그룹을 작성합니다 . -G스위치를 사용하여 함께 지정된 보충 그룹을 추가 합니다.


1
감사. 내가 그렇게 usermod -g hilbert hilbert하면 힐버트의 다른 그룹을 제거 할 수 있습니까? 그렇다면 다른 그룹을 유지하는 방법은 무엇입니까?
cwd

테스트하여 특정 환경을 확인하십시오.
ewwhite

믹의 대답은 내 upvote에를 얻을 @ 그는 당신이 (그렇지 않으면 당신은 생략 할 어떤 그룹이 될 것이다 -G와 -a 사용할 필요가 있다고 지적 때문에 제거 )
제프

9

man usermod다양한 옵션으로 어떤 일이 발생하는지 설명하는 것을 읽으십시오 .

usermod -g hilder hilder

'hilder'그룹이 존재하는 한 로그인 그룹을 'faculty'에서 'hilder'로 바꿉니다. 존재하지 않는 경우 먼저 groupadd로 작성해야합니다.

-G옵션 을 사용할 때이 옵션을 사용하여 -a사용자 'hilder'가 속한 보조 그룹의 현재 목록에 새 그룹을 추가해야합니다. -a옵션이 없으면 현재 보충 그룹을 새 그룹 세트로 교체합니다. 따라서 이것을 신중하게 사용하십시오.


5

Linux에서 사용자의 기본 그룹을 변경하려면 다음을 수행하십시오.

  • usermod -g new_group user_name
  • 모든 user_name 의 활성 세션을 종료 하십시오

변경 사항을 테스트 id하고 실행 값을 확인하려면gid=

명령이 오류없이 실행되지만 gid가 변경되지 않은 경우 2 단계의 굵게 표시된 부분이 누락 된 것입니다.


1

답변 # 1은 훌륭하지만 새 그룹을 추가하기 위해 다음을 발행하도록 선택할 수도 있습니다.

# nano /etc/group

/etc/group직접 편집의 단점은 사용하지 않는 GID (그룹 ID 번호)를 제시해야한다는 것입니다.

다음은 사용자의 기본 그룹을 변경할 수있게합니다. # nano /etc/passwd

사용자의 행을 찾아서 GID (그룹 번호, 조회 /etc/group)를 변경하고 구문은 다음과 같습니다.

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

나는이 방법을 생각할 수있는 단점 (당신이 GID를 알고 있으면이) 없다, 내가 자주 나는 각기 다른 다양한 UNIX 시스템을 사용하는 주로하기 때문에, 로컬 사용자를 위해 사용하는 것입니다 usermod, adduseruseradd명령 옵션.

좀 더 수동이지만 작업을 수행합니다. 알고있는 경우 viiso nano를 사용 하여 파일을 편집 할 수 있습니다 vi.


0

사용자의 기본 그룹을 영구적으로 변경하려면 다음을 실행하십시오.

  • usermod -g groupname username 명령

또는 newgrp소규모 환경 및 임시 상황에 사용할 수 있습니다 .

새 사용자 bob 및 새 그룹을 작성하십시오 dodo.

useradd bob

RedHat / Centos에는 UID = (ID_number) bob; 기본적으로 GID = (ID_number) bob을 기본 그룹으로

groupadd dodo

사용자 bob을 dodo그룹에 추가하십시오 .

usermod -aG dodo bob -make sure to use "a"

다음으로 newgrp소유권을 변경 하는 데 사용하십시오 .

newgrp dodo

귀하의 계정이 비밀번호를 갖고 향후 기본 그룹의 구성원이되도록주의하십시오. 그리고 newgrp은 새로운 쉘을 엽니 다. 사용자가 해당 셸에 머무르면 기본 그룹은 변경되지 않습니다. 기본 그룹을 원래 그룹으로 다시 전환하려면 exit 명령을 실행하여 새 셸을 그대로 둘 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.