/etc/group에 있는 그룹에 사용자를 추가하려고 하면 작동하지 않습니다.

/etc/group에 있는 그룹에 사용자를 추가하려고 하면 작동하지 않습니다.

데비안 가상 머신의 다른 그룹에 사용자 목록을 추가하려고 합니다. Bash 스크립트에서는 다음과 같은 일련의 명령을 사용합니다.

getent group $uid || groupadd $uid                        #add group before adding user
useradd -s $shell -m -d $users_directory -g $uid $uname   #add user with group id $uid

그러나 실행하면 다음이 인쇄됩니다.

groupadd: group '5067' already exists
useradd: group '5067' does not exist

내 그룹을 보면 cut-d: -f1 /etc/group거기에 "5067"이 존재하는 것을 알 수 있지만 실행하면 groups유일한 그룹인 "root"만 보입니다.

어떤 팁이 있나요?

답변1

숫자로 된 그룹 ID로 호출하면 groupadd그룹이 생성됩니다.명명 된 5067. 예를 들어:

# groupadd 5067
# grep 5067 /etc/group
5067:x:1000:

숫자 식별자를 전달할 때만 useradd -g ...그룹을 살펴봅니다 .ID. 그래서 한 무리의 사람들이라도명명 된 5067존재하다:

# useradd -g 5067 testuser
useradd: group '5067' does not exist

이것이 문제의 원인이라고 생각합니다.

실행 시 새 그룹이 표시되지 않는 groups것은 정상입니다 . 사용자를 추가한 새 그룹은 해당 사용자가 로그인할 때까지 적용되지 않습니다. 사용자가 이미 로그인한 경우 로그아웃했다가 다시 로그인해야 합니다(운영 체제는 새 로그인 쉘을 시작합니다). 에서는 새 그룹이 groups표시되지만 의 출력에서는 새 그룹이 표시되지 않는 이유가 바로 이 때문입니다 /etc/group.

답변2

답변: 루트에 대한 그룹 명령만 표시합니다.

group을 입력하면 다음과 같은 응답을 받게 됩니다.당신의uid. 사용자 그룹을 보려면 $uname 그룹을 사용해야 합니다.

또한 useradd는 동일한 이름을 가진 사용자에 대해 새 그룹을 생성할 수 있습니다. 이를 방지하려면 -N을 사용할 수 있습니다. 옵션 기본값을 확인하려면 /etc/login.defs 및 /etc/default/useradd를 확인하세요.

관련 정보