‘직원’사용자 그룹 이해 대한 정보를 볼 수 있습니다.

모든 사용자가 ‘직원’그룹의 구성원 인 것으로 알려져 있습니다. 표준 사용자를 설정하고 파일을 작성하는 경우 터미널에서 ‘ls -la’가있는 파일 목록은 사용자 그룹이 ‘staff’임을 나타냅니다.

dscacheutil 명령을 사용하여 그룹에 대한 정보를 볼 수 있습니다. 예를 들면 다음과 같습니다.-

dscacheutil -q group -a name admin

모든 구성원을 포함하여 관리 그룹에 대한 정보를 리턴합니다.

그러나 ‘직원’그룹을 볼 때 표준 사용자를 그룹의 구성원으로 볼 것으로 예상했지만 그렇지 않습니다.

dscacheutil -q group -a name staff

name: staff
password: *
gid: 20
users: root

모든 표준 사용자가 직원 그룹의 구성원 인 경우 여기에 표시되지 않는 이유는 무엇입니까?

직원 그룹의 실제 구성원을 보여줄 수있는 또 다른 명령이 있습니까?



답변

OS X에서 그룹의 모든 구성원을 확보 할 수있는 확실한 방법은 2DD8847의 답변입니다. “왜”에 대해서는 논리적 인 설명을 제공 할 수 없습니다. 내가 말할 수있는 것은 결과를 차별화하는 것입니다.

이러한 방법에는 PrimaryGroupID를 통해 그룹의 구성원 인 사용자 만 포함되지 않습니다. 생각하지 않는 한 가지 방법은 목록에없는 사용자가 공식적으로 직원 그룹에 추가되지 않았다는 것입니다. 직원 gid와 일치하는 PrimaryGroupID가 제공되었습니다. 따라서 일부 명령에는 공식적으로 나열되지 않습니다. 나는 터무니 없다.

불완전한 결과 :

dscl . -read /Groups/[groupname]
dscl . -read /Groups/[groupname] GroupMembership
dscacheutil -q group -a name [groupname]

완전한 결과 :

dscl . -list /Users PrimaryGroupID | grep [gid]

내가 실제로 말할 수있는 것은 그룹 구성원을 나열하는 대신 기본 그룹 ID로 그룹 구성원을 조회하지 않으면 완전한 결과를 얻을 수 없다는 것입니다. 유닉스의 이상한 점에 도전하십시오. 많이있다.

희망이 도움이됩니다!

출처


답변

정확히 무엇을 성취하고 싶습니까?

이 명령은 staff 그룹의 모든 사용자를 나열합니다.

dscl . -list /Users PrimaryGroupID | grep ' 20$'

출처

설명 : 직원 그룹의 기본 그룹 ID는 20입니다.


답변