336 Chapter 17
/* Retrieve and display tag type */
if (acl_get_tag_type(entry, &tag) == -1)
errExit("acl_get_tag_type");
printf("%-12s", (tag == ACL_USER_OBJ)? "user_obj" :
(tag == ACL_USER)? "user" :
(tag == ACL_GROUP_OBJ)? "group_obj" :
(tag == ACL_GROUP)? "group" :
(tag == ACL_MASK)? "mask" :
(tag == ACL_OTHER)? "other" : "???");
/* Retrieve and display optional tag qualifier */
if (tag == ACL_USER) {
uidp = acl_get_qualifier(entry);
if (uidp == NULL)
errExit("acl_get_qualifier");
name = groupNameFromId(*uidp);
if (name == NULL)
printf("%-8d ", *uidp);
else
printf("%-8s ", name);
if (acl_free(uidp) == -1)
errExit("acl_free");
} else if (tag == ACL_GROUP) {
gidp = acl_get_qualifier(entry);
if (gidp == NULL)
errExit("acl_get_qualifier");
name = groupNameFromId(*gidp);
if (name == NULL)
printf("%-8d ", *gidp);
else
printf("%-8s ", name);
if (acl_free(gidp) == -1)
errExit("acl_free");
} else {
printf(" ");
}
/* Retrieve and display permissions */
if (acl_get_permset(entry, &permset) == -1)
errExit("acl_get_permset");
permVal = acl_get_perm(permset, ACL_READ);
if (permVal == -1)
errExit("acl_get_perm - ACL_READ");