Lines Matching full:sid
165 * This function is called for every ACE in the DACL whose SID matches
208 pntace->sid.revision = psid->revision; in fill_ace_for_sid()
209 pntace->sid.num_subauth = psid->num_subauth; in fill_ace_for_sid()
211 pntace->sid.authority[i] = psid->authority[i]; in fill_ace_for_sid()
213 pntace->sid.sub_auth[i] = psid->sub_auth[i]; in fill_ace_for_sid()
428 acl_size = offsetof(struct smb_ace, sid) + in parse_dacl()
432 ppace[i]->sid.num_subauth > SID_MAX_SUB_AUTHORITIES || in parse_dacl()
434 acl_size + sizeof(__le32) * ppace[i]->sid.num_subauth) || in parse_dacl()
436 acl_size + sizeof(__le32) * ppace[i]->sid.num_subauth)) in parse_dacl()
443 if (!(compare_sids(&ppace[i]->sid, &sid_unix_NFS_mode))) { in parse_dacl()
445 le32_to_cpu(ppace[i]->sid.sub_auth[2]); in parse_dacl()
447 } else if (!compare_sids(&ppace[i]->sid, pownersid)) { in parse_dacl()
458 } else if (!compare_sids(&ppace[i]->sid, pgrpsid) || in parse_dacl()
459 ppace[i]->sid.sub_auth[ppace[i]->sid.num_subauth - 1] == in parse_dacl()
470 } else if (!compare_sids(&ppace[i]->sid, &sid_everyone)) { in parse_dacl()
480 } else if (!compare_sids(&ppace[i]->sid, &creator_owner)) { in parse_dacl()
482 } else if (!compare_sids(&ppace[i]->sid, &creator_group)) { in parse_dacl()
484 } else if (!compare_sids(&ppace[i]->sid, &sid_authusers)) { in parse_dacl()
492 ret = sid_to_id(user_ns, &ppace[i]->sid, SIDOWNER, &temp_fattr); in parse_dacl()
494 pr_err("%s: Error %d mapping Owner SID to uid\n", in parse_dacl()
584 struct smb_sid *sid; in set_posix_acl_entries_dacl() local
595 sid = kmalloc(sizeof(struct smb_sid), GFP_KERNEL); in set_posix_acl_entries_dacl()
596 if (!sid) in set_posix_acl_entries_dacl()
606 id_to_sid(uid, sid_type, sid); in set_posix_acl_entries_dacl()
611 id_to_sid(gid, SIDUNIX_GROUP, sid); in set_posix_acl_entries_dacl()
613 smb_copy_sid(sid, &sid_everyone); in set_posix_acl_entries_dacl()
615 kfree(sid); in set_posix_acl_entries_dacl()
620 if (ntace->sid.sub_auth[ntace->sid.num_subauth - 1] == in set_posix_acl_entries_dacl()
621 sid->sub_auth[sid->num_subauth - 1]) in set_posix_acl_entries_dacl()
631 *size += fill_ace_for_sid(ntace, sid, ACCESS_ALLOWED, flags, in set_posix_acl_entries_dacl()
641 *size += fill_ace_for_sid(ntace, sid, ACCESS_ALLOWED, in set_posix_acl_entries_dacl()
650 kfree(sid); in set_posix_acl_entries_dacl()
662 sid = kmalloc(sizeof(struct smb_sid), GFP_KERNEL); in set_posix_acl_entries_dacl()
663 if (!sid) in set_posix_acl_entries_dacl()
670 id_to_sid(uid, SIDCREATOR_OWNER, sid); in set_posix_acl_entries_dacl()
675 id_to_sid(gid, SIDCREATOR_GROUP, sid); in set_posix_acl_entries_dacl()
677 kfree(sid); in set_posix_acl_entries_dacl()
682 *size += fill_ace_for_sid(ntace, sid, ACCESS_ALLOWED, 0x0b, in set_posix_acl_entries_dacl()
688 kfree(sid); in set_posix_acl_entries_dacl()
739 const struct smb_sid *sid; in set_mode_dacl() local
752 sid = &server_conf.domain_sid; in set_mode_dacl()
754 sid = &sid_unix_users; in set_mode_dacl()
755 ace_size = fill_ace_for_sid(pace, sid, ACCESS_ALLOWED, 0, in set_mode_dacl()
757 pace->sid.sub_auth[pace->sid.num_subauth++] = cpu_to_le32(uid); in set_mode_dacl()
765 pace->sid.sub_auth[pace->sid.num_subauth++] = in set_mode_dacl()
799 * validate that we do not go past end of ACL - sid must be at least 8 in parse_sid()
800 * bytes long (assuming no sub-auths - e.g. the null SID in parse_sid()
803 pr_err("ACL too small to parse SID %p\n", psid); in parse_sid()
850 pr_err("%s: Error %d parsing Owner SID\n", __func__, rc); in parse_sec_desc()
856 pr_err("%s: Error %d mapping Owner SID to uid\n", in parse_sec_desc()
865 pr_err("%s: Error %d mapping Owner SID to gid\n", in parse_sec_desc()
871 pr_err("%s: Error %d mapping Group SID to gid\n", in parse_sec_desc()
985 static void smb_set_ace(struct smb_ace *ace, const struct smb_sid *sid, u8 type, in smb_set_ace() argument
991 smb_copy_sid(&ace->sid, sid); in smb_set_ace()
992 ace->size = cpu_to_le16(1 + 1 + 2 + 4 + 1 + 1 + 6 + (sid->num_subauth * 4)); in smb_set_ace()
1071 if (!compare_sids(&creator_owner, &parent_aces->sid)) { in smb_inherit_dacl()
1075 } else if (!compare_sids(&creator_group, &parent_aces->sid)) { in smb_inherit_dacl()
1081 psid = &parent_aces->sid; in smb_inherit_dacl()
1093 psid = &parent_aces->sid; in smb_inherit_dacl()
1198 struct smb_sid sid; in smb_check_perm_dacl() local
1258 id_to_sid(uid, sid_type, &sid); in smb_check_perm_dacl()
1270 if (!compare_sids(&sid, &ace->sid) || in smb_check_perm_dacl()
1271 !compare_sids(&sid_unix_NFS_mode, &ace->sid)) { in smb_check_perm_dacl()
1275 if (!compare_sids(&sid_everyone, &ace->sid)) in smb_check_perm_dacl()
1325 ksmbd_debug(SMB, "Can't find corresponding sid\n"); in smb_check_perm_dacl()