0
Mac OS X 10.8 Mountain Lion에서 ACL을 조사하고 있습니다. 필자는 API (문서가 좋지 않음)를 사용하여 특정 파일 또는 디렉토리에 대한 ACL 항목 목록을 검색 할 수 있습니다. 어떻게 해야할지 모르겠지만 acl_get_qualifier()
에 의해 반환 된 GUID/UUID를 UID 또는 GID로 변환해야합니다. 나는 C++을 사용하고있다. (C). 여기에 몇 가지 코드는 다음과 같습니다Mac OS X의 ACL - 조회 GUID
int acleid=ACL_FIRST_ENTRY;
int aclgeres;
// got an ACL in acl, loop on entries ...
if((aclgeres=acl_get_entry(acl,acleid,&ace))==0)
{
int aclgttres;
acl_tag_t tag;
void *aclgq;
acleid=ACL_NEXT_ENTRY;
if((aclgttres=acl_get_tag_type(ace,&tag))<0)
exit(errno);
else
{
switch(tag)
{
case ACL_UNDEFINED_TAG:
{
// error
break;
}
case ACL_EXTENDED_ALLOW:
{
printf(" TAG ALLOW\n");
break;
}
case ACL_EXTENDED_DENY:
{
printf(" TAG DENY\n");
break;
}
}
if(tag!=ACL_UNDEFINED_TAG)
{
if((aclgq=acl_get_qualifier(ace))==NULL)
exit(errno);
else
{
guid_t *guid=static_cast<guid_t*>(aclgq);
/**********************************************/
guid is now a 16-byte buffer containing a semi-
opaque 128-bit UUID entry. This maps into a
user ID or group ID, but I do not know how
/**********************************************/
free(aclgq);
}
}
}
}
그럼, API 나 해당 사용자 또는 그룹에 UUID를 매핑하는 데 사용 하는가하는 질문? 그룹의 경우 GUID의 후행 바이트가 GID를 제공하기 때문에 실제로는 꽤 쉽지만 사용자에게는 그리 간단하지 않습니다.