| /linux/fs/ |
| H A D | mnt_idmapping.c | 61 * @idmap: the mount's idmapping 65 * Take a @kuid and remap it from @fs_userns into @idmap. Use this 75 * Return: @kuid mapped according to @idmap. 76 * If @kuid has no mapping in either @idmap or @fs_userns INVALID_UID is 80 vfsuid_t make_vfsuid(struct mnt_idmap *idmap, in make_vfsuid() argument 86 if (idmap == &nop_mnt_idmap) in make_vfsuid() 88 if (idmap == &invalid_mnt_idmap) in make_vfsuid() 96 return VFSUIDT_INIT_RAW(map_id_down(&idmap->uid_map, uid)); in make_vfsuid() 102 * @idmap: the mount's idmapping 106 * Take a @kgid and remap it from @fs_userns into @idmap 120 make_vfsgid(struct mnt_idmap * idmap,struct user_namespace * fs_userns,kgid_t kgid) make_vfsgid() argument 150 from_vfsuid(struct mnt_idmap * idmap,struct user_namespace * fs_userns,vfsuid_t vfsuid) from_vfsuid() argument 179 from_vfsgid(struct mnt_idmap * idmap,struct user_namespace * fs_userns,vfsgid_t vfsgid) from_vfsgid() argument 274 free_mnt_idmap(struct mnt_idmap * idmap) free_mnt_idmap() argument 289 struct mnt_idmap *idmap; alloc_mnt_idmap() local 315 mnt_idmap_get(struct mnt_idmap * idmap) mnt_idmap_get() argument 331 mnt_idmap_put(struct mnt_idmap * idmap) mnt_idmap_put() argument 339 statmount_mnt_idmap(struct mnt_idmap * idmap,struct seq_file * seq,bool uid_map) statmount_mnt_idmap() argument [all...] |
| H A D | posix_acl.c | 114 static struct posix_acl *__get_acl(struct mnt_idmap *idmap, in __get_acl() argument 157 acl = inode->i_op->get_acl(idmap, dentry, type); in __get_acl() 374 posix_acl_permission(struct mnt_idmap *idmap, struct inode *inode, in posix_acl_permission() argument 389 vfsuid = i_uid_into_vfsuid(idmap, inode); in posix_acl_permission() 394 vfsuid = make_vfsuid(idmap, fs_userns, in posix_acl_permission() 400 vfsgid = i_gid_into_vfsgid(idmap, inode); in posix_acl_permission() 408 vfsgid = make_vfsgid(idmap, fs_userns, in posix_acl_permission() 604 posix_acl_chmod(struct mnt_idmap *idmap, struct dentry *dentry, in posix_acl_chmod() argument 626 ret = inode->i_op->set_acl(idmap, dentry, acl, ACL_TYPE_ACCESS); in posix_acl_chmod() 705 int posix_acl_update_mode(struct mnt_idmap *idmap, in posix_acl_update_mode() argument [all …]
|
| H A D | namei.c | 369 static int check_acl(struct mnt_idmap *idmap, in check_acl() argument 382 return posix_acl_permission(idmap, inode, acl, mask); in check_acl() 389 int error = posix_acl_permission(idmap, inode, acl, mask); in check_acl() 433 static int acl_permission_check(struct mnt_idmap *idmap, in acl_permission_check() argument 462 vfsuid = i_uid_into_vfsuid(idmap, inode); in acl_permission_check() 471 int error = check_acl(idmap, inode, mask); in acl_permission_check() 485 vfsgid_t vfsgid = i_gid_into_vfsgid(idmap, inode); in acl_permission_check() 516 int generic_permission(struct mnt_idmap *idmap, struct inode *inode, in generic_permission() argument 524 ret = acl_permission_check(idmap, inode, mask); in generic_permission() 531 if (capable_wrt_inode_uidgid(idmap, inode, in generic_permission() [all …]
|
| H A D | file_attr.c | 268 int vfs_fileattr_set(struct mnt_idmap *idmap, struct dentry *dentry, in vfs_fileattr_set() argument 278 if (!inode_owner_or_capable(idmap, inode)) in vfs_fileattr_set() 301 err = inode->i_op->fileattr_set(idmap, dentry, fa); in vfs_fileattr_set() 326 struct mnt_idmap *idmap = file_mnt_idmap(file); in ioctl_setflags() local 337 err = vfs_fileattr_set(idmap, dentry, &fa); in ioctl_setflags() 358 struct mnt_idmap *idmap = file_mnt_idmap(file); in ioctl_fssetxattr() local 367 err = vfs_fileattr_set(idmap, dentry, &fa); in ioctl_fssetxattr()
|
| /linux/fs/nfs/ |
| H A D | nfs4idmap.c | 65 struct idmap *idmap; member 68 struct idmap { struct 76 static struct user_namespace *idmap_userns(const struct idmap *idmap) in idmap_userns() argument 78 if (idmap && idmap->user_ns) in idmap_userns() 79 return idmap->user_ns; in idmap_userns() 280 const char *type, struct idmap *idmap) in nfs_idmap_request_key() argument 290 if (!idmap->user_ns || idmap->user_ns == &init_user_ns) in nfs_idmap_request_key() 293 mutex_lock(&idmap->idmap_mutex); in nfs_idmap_request_key() 295 desc, NULL, "", 0, idmap); in nfs_idmap_request_key() 296 mutex_unlock(&idmap->idmap_mutex); in nfs_idmap_request_key() [all …]
|
| H A D | namespace.c | 225 nfs_namespace_getattr(struct mnt_idmap *idmap, in nfs_namespace_getattr() argument 230 return nfs_getattr(idmap, path, stat, request_mask, in nfs_namespace_getattr() 238 nfs_namespace_setattr(struct mnt_idmap *idmap, struct dentry *dentry, in nfs_namespace_setattr() argument 242 return nfs_setattr(idmap, dentry, attr); in nfs_namespace_setattr()
|
| /linux/fs/smb/server/ |
| H A D | vfs.c | 122 void ksmbd_vfs_query_maximal_access(struct mnt_idmap *idmap, in ksmbd_vfs_query_maximal_access() argument 127 if (!inode_permission(idmap, d_inode(dentry), MAY_OPEN | MAY_WRITE)) in ksmbd_vfs_query_maximal_access() 133 if (!inode_permission(idmap, d_inode(dentry), MAY_OPEN | MAY_READ)) in ksmbd_vfs_query_maximal_access() 136 if (!inode_permission(idmap, d_inode(dentry), MAY_OPEN | MAY_EXEC)) in ksmbd_vfs_query_maximal_access() 139 if (!inode_permission(idmap, d_inode(dentry->d_parent), MAY_EXEC | MAY_WRITE)) in ksmbd_vfs_query_maximal_access() 190 struct mnt_idmap *idmap; in ksmbd_vfs_mkdir() local 206 idmap = mnt_idmap(path.mnt); in ksmbd_vfs_mkdir() 209 dentry = vfs_mkdir(idmap, d_inode(path.dentry), dentry, mode, NULL); in ksmbd_vfs_mkdir() 223 static ssize_t ksmbd_vfs_getcasexattr(struct mnt_idmap *idmap, in ksmbd_vfs_getcasexattr() argument 240 value_len = ksmbd_vfs_getxattr(idmap, in ksmbd_vfs_getcasexattr() [all …]
|
| H A D | smbacl.h | 84 int parse_sec_desc(struct mnt_idmap *idmap, struct smb_ntsd *pntsd, 86 int build_sec_desc(struct mnt_idmap *idmap, struct smb_ntsd *pntsd, 107 static inline uid_t posix_acl_uid_translate(struct mnt_idmap *idmap, in posix_acl_uid_translate() argument 113 vfsuid = make_vfsuid(idmap, &init_user_ns, pace->e_uid); in posix_acl_uid_translate() 119 static inline gid_t posix_acl_gid_translate(struct mnt_idmap *idmap, in posix_acl_gid_translate() argument 125 vfsgid = make_vfsgid(idmap, &init_user_ns, pace->e_gid); in posix_acl_gid_translate()
|
| H A D | smbacl.c | 257 static int sid_to_id(struct mnt_idmap *idmap, in sid_to_id() argument 284 uid = from_vfsuid(idmap, &init_user_ns, VFSUIDT_INIT(uid)); in sid_to_id() 295 gid = from_vfsgid(idmap, &init_user_ns, VFSGIDT_INIT(gid)); in sid_to_id() 370 static void parse_dacl(struct mnt_idmap *idmap, in parse_dacl() argument 504 ret = sid_to_id(idmap, &ppace[i]->sid, SIDOWNER, &temp_fattr); in parse_dacl() 590 static void set_posix_acl_entries_dacl(struct mnt_idmap *idmap, in set_posix_acl_entries_dacl() argument 616 uid = posix_acl_uid_translate(idmap, pace); in set_posix_acl_entries_dacl() 623 gid = posix_acl_gid_translate(idmap, pace); in set_posix_acl_entries_dacl() 686 uid = posix_acl_uid_translate(idmap, pace); in set_posix_acl_entries_dacl() 691 gid = posix_acl_gid_translate(idmap, pace); in set_posix_acl_entries_dacl() [all …]
|
| /linux/Documentation/admin-guide/nfs/ |
| H A D | nfs-idmapper.rst | 9 or by placing a call to the rpc.idmap daemon. 19 legacy rpc.idmap daemon for the id mapping. This result will be stored 20 in a custom NFS idmap cache. 31 ``create id_resolver * * /usr/sbin/nfs.idmap %k %d 600`` 34 This will direct all id_resolver requests to the program /usr/sbin/nfs.idmap. 36 expire. This parameter is optional for /usr/sbin/nfs.idmap. When the timeout 37 is not specified, nfs.idmap will default to 600 seconds. 53 ``create id_resolver * * /usr/sbin/nfs.idmap %k %d 600`` 59 /usr/sbin/nfs.idmap will handle gid, user, and group lookups. 65 nfs.idmap [all …]
|
| /linux/security/integrity/evm/ |
| H A D | evm_main.c | 474 * @idmap: idmap of the mount in evm_xattr_change() 484 static int evm_xattr_change(struct mnt_idmap *idmap, 520 static int evm_protect_xattr(struct mnt_idmap *idmap, in evm_protect_xattr() 582 !evm_xattr_change(idmap, dentry, xattr_name, xattr_value, 597 * @idmap: idmap of the mount in evm_inode_setxattr() 610 static int evm_inode_setxattr(struct mnt_idmap *idmap, struct dentry *dentry, 629 return evm_protect_xattr(idmap, dentry, xattr_name, xattr_value, in evm_inode_removexattr() 635 * @idmap in evm_inode_set_acl_change() 461 evm_xattr_change(struct mnt_idmap * idmap,struct dentry * dentry,const char * xattr_name,const void * xattr_value,size_t xattr_value_len) evm_xattr_change() argument 497 evm_protect_xattr(struct mnt_idmap * idmap,struct dentry * dentry,const char * xattr_name,const void * xattr_value,size_t xattr_value_len) evm_protect_xattr() argument 587 evm_inode_setxattr(struct mnt_idmap * idmap,struct dentry * dentry,const char * xattr_name,const void * xattr_value,size_t xattr_value_len,int flags) evm_inode_setxattr() argument 619 evm_inode_removexattr(struct mnt_idmap * idmap,struct dentry * dentry,const char * xattr_name) evm_inode_removexattr() argument 632 evm_inode_set_acl_change(struct mnt_idmap * idmap,struct dentry * dentry,const char * name,struct posix_acl * kacl) evm_inode_set_acl_change() argument 651 evm_inode_set_acl_change(struct mnt_idmap * idmap,struct dentry * dentry,const char * name,struct posix_acl * kacl) evm_inode_set_acl_change() argument 673 evm_inode_set_acl(struct mnt_idmap * idmap,struct dentry * dentry,const char * acl_name,struct posix_acl * kacl) evm_inode_set_acl() argument 725 evm_inode_remove_acl(struct mnt_idmap * idmap,struct dentry * dentry,const char * acl_name) evm_inode_remove_acl() argument 878 evm_inode_post_remove_acl(struct mnt_idmap * idmap,struct dentry * dentry,const char * acl_name) evm_inode_post_remove_acl() argument 885 evm_attr_change(struct mnt_idmap * idmap,struct dentry * dentry,struct iattr * attr) evm_attr_change() argument 908 evm_inode_setattr(struct mnt_idmap * idmap,struct dentry * dentry,struct iattr * attr) evm_inode_setattr() argument 960 evm_inode_post_setattr(struct mnt_idmap * idmap,struct dentry * dentry,int ia_valid) evm_inode_post_setattr() argument 1092 evm_post_path_mknod(struct mnt_idmap * idmap,struct dentry * dentry) evm_post_path_mknod() argument [all...] |
| /linux/fs/efivarfs/ |
| H A D | inode.c | 77 static int efivarfs_create(struct mnt_idmap *idmap, struct inode *dir, in efivarfs_create() argument 153 efivarfs_fileattr_set(struct mnt_idmap *idmap, in efivarfs_fileattr_set() argument 173 static int efivarfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry, in efivarfs_setattr() argument 179 error = setattr_prepare(idmap, dentry, iattr); in efivarfs_setattr() 183 setattr_copy(idmap, inode, iattr); in efivarfs_setattr()
|
| /linux/fs/minix/ |
| H A D | namei.c | 36 static int minix_mknod(struct mnt_idmap *idmap, struct inode *dir, in minix_mknod() argument 53 static int minix_tmpfile(struct mnt_idmap *idmap, struct inode *dir, in minix_tmpfile() argument 66 static int minix_create(struct mnt_idmap *idmap, struct inode *dir, in minix_create() argument 72 static int minix_symlink(struct mnt_idmap *idmap, struct inode *dir, in minix_symlink() argument 107 static struct dentry *minix_mkdir(struct mnt_idmap *idmap, struct inode *dir, in minix_mkdir() argument 190 static int minix_rename(struct mnt_idmap *idmap, in minix_rename() argument
|
| /linux/fs/f2fs/ |
| H A D | acl.c | 208 static int f2fs_acl_update_mode(struct mnt_idmap *idmap, in f2fs_acl_update_mode() argument 223 if (!in_group_or_capable(idmap, inode, i_gid_into_vfsgid(idmap, inode))) in f2fs_acl_update_mode() 229 static int __f2fs_set_acl(struct mnt_idmap *idmap, in __f2fs_set_acl() argument 243 error = f2fs_acl_update_mode(idmap, inode, &mode, &acl); in __f2fs_set_acl() 278 int f2fs_set_acl(struct mnt_idmap *idmap, struct dentry *dentry, in f2fs_set_acl() argument 286 return __f2fs_set_acl(idmap, inode, type, acl, NULL); in f2fs_set_acl()
|
| /linux/fs/ocfs2/ |
| H A D | file.h | 53 int ocfs2_setattr(struct mnt_idmap *idmap, struct dentry *dentry, 55 int ocfs2_getattr(struct mnt_idmap *idmap, const struct path *path, 57 int ocfs2_permission(struct mnt_idmap *idmap,
|
| /linux/fs/ramfs/ |
| H A D | inode.c | 98 ramfs_mknod(struct mnt_idmap *idmap, struct inode *dir, in ramfs_mknod() argument 121 static struct dentry *ramfs_mkdir(struct mnt_idmap *idmap, struct inode *dir, in ramfs_mkdir() argument 130 static int ramfs_create(struct mnt_idmap *idmap, struct inode *dir, in ramfs_create() argument 136 static int ramfs_symlink(struct mnt_idmap *idmap, struct inode *dir, in ramfs_symlink() argument 166 static int ramfs_tmpfile(struct mnt_idmap *idmap, in ramfs_tmpfile() argument
|
| /linux/fs/xfs/ |
| H A D | xfs_itable.c | 66 struct mnt_idmap *idmap, in xfs_bulkstat_one_int() argument 102 vfsuid = i_uid_into_vfsuid(idmap, inode); in xfs_bulkstat_one_int() 103 vfsgid = i_gid_into_vfsgid(idmap, inode); in xfs_bulkstat_one_int() 225 if (breq->idmap != &nop_mnt_idmap) { in xfs_bulkstat_one() 243 error = xfs_bulkstat_one_int(breq->mp, breq->idmap, tp, in xfs_bulkstat_one() 268 error = xfs_bulkstat_one_int(mp, bc->breq->idmap, tp, ino, data); in xfs_bulkstat_iwalk() 312 if (breq->idmap != &nop_mnt_idmap) { in xfs_bulkstat()
|
| /linux/security/integrity/ima/ |
| H A D | ima_appraise.c | 74 int ima_must_appraise(struct mnt_idmap *idmap, struct inode *inode, in ima_must_appraise() argument 83 return ima_match_policy(idmap, inode, current_cred(), &prop, in ima_must_appraise() 617 * @idmap: idmap of the mount the inode was found from in ima_appraise_measurement() 626 static void ima_inode_post_setattr(struct mnt_idmap *idmap, 637 action = ima_must_appraise(idmap, inode, MAY_ACCESS, POST_SETATTR); in ima_update_xattr() 749 static int ima_inode_setxattr(struct mnt_idmap *idmap, struct dentry *dentry, in validate_hash_algo() 782 static int ima_inode_set_acl(struct mnt_idmap *idmap, struct dentry *dentry, in validate_hash_algo() 791 static int ima_inode_removexattr(struct mnt_idmap *idmap, struct dentry *dentry, in ima_inode_setxattr() 807 static int ima_inode_remove_acl(struct mnt_idmap *idmap, struc in ima_inode_setxattr() 661 ima_inode_post_setattr(struct mnt_idmap * idmap,struct dentry * dentry,int ia_valid) ima_inode_post_setattr() argument 784 ima_inode_setxattr(struct mnt_idmap * idmap,struct dentry * dentry,const char * xattr_name,const void * xattr_value,size_t xattr_value_len,int flags) ima_inode_setxattr() argument 817 ima_inode_set_acl(struct mnt_idmap * idmap,struct dentry * dentry,const char * acl_name,struct posix_acl * kacl) ima_inode_set_acl() argument 826 ima_inode_removexattr(struct mnt_idmap * idmap,struct dentry * dentry,const char * xattr_name) ima_inode_removexattr() argument 842 ima_inode_remove_acl(struct mnt_idmap * idmap,struct dentry * dentry,const char * acl_name) ima_inode_remove_acl() argument [all...] |
| /linux/security/ |
| H A D | commoncap.c | 338 * @idmap: idmap of the mount the inode was found from 343 * If the inode has been found through an idmapped mount the idmap of 344 * the vfsmount must be passed through @idmap. This function will then 345 * take care to map the inode according to @idmap before checking 351 int cap_inode_killpriv(struct mnt_idmap *idmap, struct dentry *dentry) in cap_inode_killpriv() argument 355 error = __vfs_removexattr(idmap, dentry, XATTR_NAME_CAPS); in cap_inode_killpriv() 420 int cap_inode_getsecurity(struct mnt_idmap *idmap, in cap_inode_getsecurity() argument 441 size = vfs_getxattr_alloc(idmap, dentry, XATTR_NAME_CAPS, &tmpbuf, in cap_inode_getsecurity() 463 vfsroot = make_vfsuid(idmap, fs_n in cap_inode_getsecurity() 569 cap_convert_nscap(struct mnt_idmap * idmap,struct dentry * dentry,const void ** ivalue,size_t size) cap_convert_nscap() argument 675 get_vfs_caps_from_disk(struct mnt_idmap * idmap,const struct dentry * dentry,struct cpu_vfs_cap_data * cpu_caps) get_vfs_caps_from_disk() argument 1066 cap_inode_removexattr(struct mnt_idmap * idmap,struct dentry * dentry,const char * name) cap_inode_removexattr() argument [all...] |
| H A D | security.c | 1428 void security_path_post_mknod(struct mnt_idmap *idmap, struct dentry *dentry) in security_path_post_mknod() argument 1432 call_void_hook(path_post_mknod, idmap, dentry); in security_path_post_mknod() 1641 void security_inode_post_create_tmpfile(struct mnt_idmap *idmap, in security_inode_post_create_tmpfile() argument 1646 call_void_hook(inode_post_create_tmpfile, idmap, inode); in security_inode_post_create_tmpfile() 1858 int security_inode_setattr(struct mnt_idmap *idmap, in security_inode_setattr() argument 1863 return call_int_hook(inode_setattr, idmap, dentry, attr); in security_inode_setattr() 1875 void security_inode_post_setattr(struct mnt_idmap *idmap, struct dentry *dentry, in security_inode_post_setattr() argument 1880 call_void_hook(inode_post_setattr, idmap, dentry, ia_valid); in security_inode_post_setattr() 1924 int security_inode_setxattr(struct mnt_idmap *idmap, in security_inode_setxattr() argument 1940 return call_int_hook(inode_setxattr, idmap, dentry, name, value, size, in security_inode_setxattr() [all …]
|
| /linux/fs/kernfs/ |
| H A D | kernfs-internal.h | 172 int kernfs_iop_permission(struct mnt_idmap *idmap, 174 int kernfs_iop_setattr(struct mnt_idmap *idmap, struct dentry *dentry, 176 int kernfs_iop_getattr(struct mnt_idmap *idmap,
|
| /linux/fs/coda/ |
| H A D | pioctl.c | 27 static int coda_ioctl_permission(struct mnt_idmap *idmap, 44 static int coda_ioctl_permission(struct mnt_idmap *idmap, in coda_ioctl_permission() argument
|
| /linux/fs/9p/ |
| H A D | acl.h | 13 struct posix_acl *v9fs_iop_get_acl(struct mnt_idmap *idmap, 15 int v9fs_iop_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
|
| /linux/fs/tracefs/ |
| H A D | inode.c | 97 static struct dentry *tracefs_syscall_mkdir(struct mnt_idmap *idmap, in tracefs_syscall_mkdir() argument 192 static int tracefs_permission(struct mnt_idmap *idmap, in tracefs_permission() argument 196 return generic_permission(idmap, inode, mask); in tracefs_permission() 199 static int tracefs_getattr(struct mnt_idmap *idmap, in tracefs_getattr() argument 206 generic_fillattr(idmap, request_mask, inode, stat); in tracefs_getattr() 210 static int tracefs_setattr(struct mnt_idmap *idmap, struct dentry *dentry, in tracefs_setattr() argument 223 return simple_setattr(idmap, dentry, attr); in tracefs_setattr()
|
| /linux/fs/ntfs/ |
| H A D | ea.c | 708 struct mnt_idmap *idmap, struct dentry *unused, in ntfs_setxattr() argument 796 struct posix_acl *ntfs_get_acl(struct mnt_idmap *idmap, struct dentry *dentry, in ntfs_get_acl() argument 840 static noinline int ntfs_set_acl_ex(struct mnt_idmap *idmap, in ntfs_set_acl_ex() argument 859 err = posix_acl_update_mode(idmap, inode, &mode, &acl); in ntfs_set_acl_ex() 922 int ntfs_set_acl(struct mnt_idmap *idmap, struct dentry *dentry, in ntfs_set_acl() argument 925 return ntfs_set_acl_ex(idmap, d_inode(dentry), acl, type, false); in ntfs_set_acl() 928 int ntfs_init_acl(struct mnt_idmap *idmap, struct inode *inode, in ntfs_init_acl() argument 939 err = ntfs_set_acl_ex(idmap, inode, default_acl, in ntfs_init_acl() 948 err = ntfs_set_acl_ex(idmap, inode, acl, in ntfs_init_acl()
|