security_sem_semop(9)
π security_sem_semop(9) β Kernel API Manual, but make it make sense
okay so bestie, welcome to the security_sem_semop page from the Kernel API Manual β¨ this is a Linux Security Module (LSM) hook, and it is genuinely so much less scary than the name makes it look. i promise. π«Ά
β¨ NAME β¨
security_sem_semop β the vibe check that asks "bestie, are you actually allowed to do this SysV semaphore operation?" π
π¦ SYNOPSIS π¦
int security_sem_semop (struct kern_ipc_perm *sma , struct sembuf *sops
, unsigned nsops , int alter );
like, it returns an int, and it takes four things. that's it. that's the whole flex. π
π ARGUMENTS π
smaβ the SysV IPC permission structure, aka the little permission card for the semaphore thing we're messing with πͺͺsopsβ the operations that are about to be performed, like the actual to-do list πnsopsβ how many operations are in that list (the count, the number, the quantity) π’alterβ a flag that says whether changes are gonna be made π
πΈ DESCRIPTION πΈ
so here's the tea β β this hook checks permissions before any operations go down on the members of the semaphore set. it's the bouncer at the door, checking your name is on the list before you get into the function.
and if the alter flag is nonzero? then the semaphore set may be modified. lowkey important detail, highkey worth remembering. π₯
β RETURN β
returns 0 if permission is granted. that's the good ending. π
π SEE ALSO π
this is the part where the page just. keeps. going. it's giving "i know a guy" energy because it links the kernel file ./security/security.c plus basically every LSM hook in existence. no cap, we're listing them ALL, bestie. buckle up. π’
lsm_file_alloc(9),lsm_backing_file_alloc(9),lsm_blob_alloc(9),lsm_cred_alloc(9),lsm_inode_alloc(9),lsm_task_alloc(9),lsm_ipc_alloc(9),lsm_key_alloc(9),lsm_msg_msg_alloc(9),lsm_bdev_alloc(9)lsm_bpf_map_alloc(9),lsm_bpf_prog_alloc(9),lsm_bpf_token_alloc(9),lsm_superblock_alloc(9),lsm_fill_user_ctx(9)security_binder_set_context_mgr(9),security_binder_transaction(9),security_binder_transfer_binder(9),security_binder_transfer_file(9)security_ptrace_access_check(9),security_ptrace_traceme(9),security_capget(9),security_capset(9),security_capable(9),security_quotactl(9),security_quota_on(9),security_syslog(9),security_settime64(9),security_vm_enough_memory_mm(9)security_bprm_creds_for_exec(9),security_bprm_creds_from_file(9),security_bprm_check(9),security_bprm_committing_creds(9),security_bprm_committed_creds(9)security_fs_context_submount(9),security_fs_context_dup(9),security_fs_context_parse_param(9)security_sb_alloc(9),security_sb_delete(9),security_sb_free(9),security_free_mnt_opts(9),security_sb_eat_lsm_opts(9),security_sb_mnt_opts_compat(9),security_sb_remount(9),security_sb_kern_mount(9),security_sb_show_options(9),security_sb_statfs(9),security_sb_mount(9),security_sb_umount(9),security_sb_pivotroot(9),security_sb_set_mnt_opts(9),security_sb_clone_mnt_opts(9),security_move_mount(9)security_path_notify(9),security_inode_alloc(9),security_inode_free(9),security_dentry_init_security(9),security_dentry_create_files_as(9),security_inode_init_security(9),security_inode_init_security_anon(9)security_path_mknod(9),security_path_post_mknod(9),security_path_mkdir(9),security_path_rmdir(9),security_path_unlink(9),security_path_symlink(9),security_path_link(9),security_path_rename(9),security_path_truncate(9),security_path_chmod(9),security_path_chown(9),security_path_chroot(9)security_inode_create(9),security_inode_post_create_tmpfile(9),security_inode_link(9),security_inode_unlink(9),security_inode_symlink(9),security_inode_mkdir(9),security_inode_rmdir(9),security_inode_mknod(9),security_inode_rename(9),security_inode_readlink(9),security_inode_follow_link(9),security_inode_permission(9),security_inode_setattr(9),security_inode_post_setattr(9),security_inode_getattr(9),security_inode_setxattr(9)security_inode_set_acl(9),security_inode_post_set_acl(9),security_inode_get_acl(9),security_inode_remove_acl(9),security_inode_post_remove_acl(9),security_inode_post_setxattr(9),security_inode_getxattr(9),security_inode_listxattr(9),security_inode_removexattr(9),security_inode_post_removexattr(9)security_inode_file_setattr(9),security_inode_file_getattr(9),security_inode_need_killpriv(9),security_inode_killpriv(9),security_inode_getsecurity(9),security_inode_setsecurity(9),security_inode_listsecurity(9),security_inode_getlsmprop(9),security_inode_copy_up(9),security_inode_copy_up_xattr(9),security_inode_setintegrity(9),security_kernfs_init_security(9)security_file_permission(9),security_file_alloc(9),security_file_release(9),security_file_free(9),security_backing_file_alloc(9),security_backing_file_free(9),security_file_ioctl(9),security_file_ioctl_compat(9),security_mmap_file(9),security_mmap_backing_file(9),security_mmap_addr(9),security_file_mprotect(9),security_file_lock(9),security_file_fcntl(9),security_file_set_fowner(9),security_file_send_sigiotask(9),security_file_receive(9),security_file_open(9),security_file_post_open(9),security_file_truncate(9)security_task_alloc(9),security_task_free(9),security_cred_alloc_blank(9),security_cred_free(9),security_prepare_creds(9),security_transfer_creds(9),security_cred_getsecid(9),security_cred_getlsmprop(9),security_kernel_act_as(9),security_kernel_create_files_as(9),security_kernel_module_request(9),security_kernel_read_file(9),security_kernel_post_read_file(9),security_kernel_load_data(9),security_kernel_post_load_data(9)security_task_fix_setuid(9),security_task_fix_setgid(9),security_task_fix_setgroups(9),security_task_setpgid(9),security_task_getpgid(9),security_task_getsid(9),security_current_getlsmprop_subj(9),security_task_getlsmprop_obj(9),security_task_setnice(9),security_task_setioprio(9),security_task_getioprio(9),security_task_prlimit(9),security_task_setrlimit(9),security_task_setscheduler(9),security_task_getscheduler(9),security_task_movememory(9),security_task_kill(9),security_task_prctl(9),security_task_to_inode(9),security_create_user_ns(9)security_ipc_permission(9),security_ipc_getlsmprop(9),security_msg_msg_alloc(9),security_msg_msg_free(9),security_msg_queue_alloc(9),security_msg_queue_free(9),security_msg_queue_associate(9),security_msg_queue_msgctl(9),security_msg_queue_msgsnd(9),security_msg_queue_msgrcv(9)security_shm_alloc(9),security_shm_free(9),security_shm_associate(9),security_shm_shmctl(9),security_shm_shmat(9),security_sem_alloc(9),security_sem_free(9),security_sem_associate(9),security_sem_semctl(9)security_d_instantiate(9),security_getselfattr(9),security_setselfattr(9),security_getprocattr(9),security_setprocattr(9),security_ismaclabel(9),security_secid_to_secctx(9),security_lsmprop_to_secctx(9),security_secctx_to_secid(9),security_release_secctx(9),security_inode_invalidate_secctx(9),security_inode_notifysecctx(9),security_inode_setsecctx(9),security_inode_getsecctx(9)security_post_notification(9),security_watch_key(9),security_netlink_send(9),security_unix_stream_connect(9),security_unix_may_send(9)security_socket_create(9),security_socket_post_create(9),security_socket_socketpair(9),security_socket_bind(9),security_socket_connect(9),security_socket_listen(9),security_socket_accept(9),security_socket_sendmsg(9),security_socket_recvmsg(9),security_socket_getsockname(9),security_socket_getpeername(9),security_socket_getsockopt(9),security_socket_setsockopt(9),security_socket_shutdown(9),security_sock_rcv_skb(9),security_socket_getpeersec_stream(9),security_socket_getpeersec_dgram(9),lsm_sock_alloc(9),security_sk_alloc(9),security_sk_free(9),security_sk_clone(9),security_sk_classify_flow(9),security_req_classify_flow(9),security_sock_graft(9)security_inet_conn_request(9),security_inet_csk_clone(9),security_inet_conn_established(9),security_secmark_relabel_packet(9),security_secmark_refcount_inc(9),security_secmark_refcount_dec(9)security_tun_dev_alloc_security(9),security_tun_dev_free_security(9),security_tun_dev_create(9),security_tun_dev_attach_queue(9),security_tun_dev_attach(9),security_tun_dev_open(9)security_sctp_assoc_request(9),security_sctp_bind_connect(9),security_sctp_sk_clone(9),security_sctp_assoc_established(9),security_mptcp_add_subflow(9),security_unix_find(9)security_ib_pkey_access(9),security_ib_endport_manage_subnet(9),security_ib_alloc_security(9),security_ib_free_security(9)security_xfrm_policy_alloc(9),security_xfrm_policy_clone(9),security_xfrm_policy_free(9),security_xfrm_policy_delete(9),security_xfrm_state_alloc(9),security_xfrm_state_alloc_acquire(9),security_xfrm_state_delete(9),security_xfrm_state_free(9),security_xfrm_policy_lookup(9),security_xfrm_state_pol_flow_match(9),security_xfrm_decode_session(9)security_key_alloc(9),security_key_free(9),security_key_permission(9),security_key_getsecurity(9),security_key_post_create_or_update(9)security_audit_rule_init(9),security_audit_rule_known(9),security_audit_rule_free(9),security_audit_rule_match(9)security_bpf(9),security_bpf_map(9),security_bpf_prog(9),security_bpf_map_create(9),security_bpf_prog_load(9),security_bpf_token_create(9),security_bpf_token_cmd(9),security_bpf_token_capable(9),security_bpf_map_free(9),security_bpf_prog_free(9),security_bpf_token_free(9)security_locked_down(9),security_bdev_alloc(9),security_bdev_free(9),security_bdev_setintegrity(9),security_perf_event_open(9),security_perf_event_alloc(9),security_perf_event_free(9),security_perf_event_read(9),security_perf_event_write(9)security_uring_override_creds(9),security_uring_sqpoll(9),security_uring_cmd(9),security_uring_allowed(9),security_initramfs_populated(9)
ngl bestie, that see-also list is a lot of hooks. but every single one of them lives in the kernel file ./security/security.c, so if you're lost, that's your map. πΊοΈπ
and that's the whole page!! source: ./security, version October 2026 β mwah, go check your permissions before you alter anything, ily, bye π§ππ
π¦ 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