inode_permission(9)
π inode_permission(9) β the kernel API manual page, bestie edition β¨
Okay so welcome to inode_permission(9), straight out of the Kernel API Manual. Yes, that's a section 9 page, and yes, it's giving "kernel dev at 2am drinking iced coffee" energy. Buckle up π
β¨ NAME β¨
inode_permission β check for access rights to a given inode π¦
πΈ SYNOPSIS πΈ
int inode_permission (struct mnt_idmap *idmap , struct inode *inode ,
int mask );
π ARGUMENTS π
idmapβ the idmap of the mount that the inode was found from. literally the mapping context, she's the one who knows the vibes of the mount πinodeβ the inode you wanna check permission on. the main character, no cap πmaskβ the right you're checking for:MAY_READ,MAY_WRITE,MAY_EXECπ₯
π¦ DESCRIPTION π¦
So basically, this bad boy checks for read/write/execute permissions on an inode. iconic behaviour honestly.
The way it does it: we use fs[ug]id for this, which lets us set arbitrary permissions for filesystem access without changing the "normal" UIDs which are used for other things. which is lowkey genius π§
β οΈ Heads up bestie: when checking forMAY_APPEND,MAY_WRITEmust also be set inmask. like, both. not one. both. fr fr π
π SEE ALSO π
Kernel file ./fs/namei.c β and omg the friend group here is huge, she knows everyone:
check_acl(9),acl_permission_check(9),generic_permission(9),do_inode_permission(9),sb_permission(9)path_get(9),path_put(9),path_connected(9)try_to_unlazy(9),try_to_unlazy_next(9),complete_walk(9)may_follow_link(9),safe_hardlink_source(9),may_linkat(9),may_create_in_sticky(9)lookup_fast(9),start_dirop(9),end_dirop(9)kern_path_parent(9),vfs_path_parent_lookup(9),vfs_path_lookup(9)try_lookup_noperm(9),lookup_noperm(9),lookup_one(9),lookup_one_unlocked(9),lookup_one_positive_killable(9),lookup_one_positive_unlocked(9),lookup_noperm_unlocked(9)start_creating(9),start_removing(9),start_creating_killable(9),start_removing_killable(9),start_creating_noperm(9),start_removing_noperm(9),start_creating_dentry(9),start_removing_dentry(9)__start_renaming(9),start_renaming(9),start_renaming_dentry(9),start_renaming_two_dentries(9)vfs_prepare_mode(9),vfs_create(9),atomic_open(9),vfs_lookup_open(9),vfs_tmpfile(9),kernel_tmpfile_open(9),end_creating_path(9),dentry_create(9)vfs_mknod(9),vfs_mkdir(9),vfs_rmdir(9),vfs_unlink(9),vfs_symlink(9),vfs_link(9),vfs_rename(9),vfs_readlink(9),vfs_get_link(9),page_get_link(9),page_put_link(9)
okay that's the whole page, you ate that π«Ά this listing comes from ./fs, October 2026, and it's inode_permission(9) β go forth and check those permissions, bestie πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms