새로 생성된 사용자를 chown과 함께 사용할 수 없는 이유는 무엇입니까?

새로 생성된 사용자를 chown과 함께 사용할 수 없는 이유는 무엇입니까?

그래서 새 사용자와 그룹을 생성한 다음 디렉터리의 소유권을 해당 새 사용자/그룹으로 변경하려고 합니다. 그러나 그렇게 하면 chown이 "잘못된 사용자 이름" 메시지와 함께 돌아옵니다.

다음은 내가 하려는 작업을 보여주는 단순화된 쉘 스크립트입니다.

#!/usr/bin/bash

# Create Group
dscl . create /Groups/_jira
dscl . create /Groups/_jira gid 301"

# Create User
dscl . create /Users/_jira
dscl . append /Groups/_jira GroupMembership _jira

# Change Ownership
chown -R _jira:_jira /Some/random/directory

... 내가 얻는 결과는 다음과 같습니다.

chown: _jira: illegal user name

한 단계가 누락되었나요? 사용자 이름 앞에 밑줄이 붙어 있기 때문인가요?

메모:기존 사용자와 그룹을 모두 나열하고 _jira 사용자와 _jira 그룹을 볼 수 있으며 사용자가 해당 그룹에 할당되어 있는 것도 볼 수 있습니다.

답변1

_jira 사용자에게 사용자 ID 번호(dscl이 UniqueID라고 부르는 것)를 할당하지 않았으며 파일 소유권은 사용자 ID로 기록되므로 이 번호가 없는 계정에 파일을 저장할 수 있는 방법이 없습니다. 다음과 같은 내용을 추가하세요.

dscl . create /Users/_jira UniqueID 301

또한 사용자의 PrimaryGroupID를 설정해야 하며, 저는 사용자를 그룹에 추가하는 대신 이를 사용하여 _jira 그룹에 할당하겠습니다.

dscl . create /Users/_jira PrimaryGroupID 301

_jira 그룹에 보조 멤버십을 계속 추가하려면 다른 그룹 ID를 기본으로 할당한 다음 dseditgroup을 사용하여 보조 멤버십을 추가해야 합니다.

sudo dseditgroup -o edit -a _jira -t user _jira

이는 그룹의 GroupMembership 목록에 "_jira"를 추가할 뿐만 아니라 그룹의 GroupMembers 목록에 사용자의 UUID도 추가합니다. 두 가지를 모두 수행하는 것이 권장되며 dscl로 수행할 수 있지만 dseditgroup을 사용하면 더 간단합니다.

관련 정보