smack_ptrace_traceme(9)
π smack_ptrace_traceme β the Kernel API Manual, but make it a group chat
okay so bestie, welcome to smack_ptrace_traceme(9) β yes that's the real name, yes it's a mouthful, no we're not changing it. This one lives in the Kernel API Manual and it's genuinely such a little icon: it's the Smack hook that gets a say when somebody calls PTRACE_TRACEME. Think of it as the bouncer at the door of "can this process be traced," and it does check the list. π«Ά
β¨ NAME β¨
smack_ptrace_traceme β Smack approval on PTRACE_TRACEME
like, literally the approval step. that's the whole vibe check. π
π SYNOPSIS π
int smack_ptrace_traceme (struct task_struct *ptp );
(no cap, that spacing is exactly how it's written β we do not touch it β¨)
πΈ ARGUMENTS πΈ
ptpβ the parent task pointer. that's it. that's the whole argument. it's giving "one job and she's doing it" π
π¦ DESCRIPTION π¦
okay so here's the tea π:
- Returns
0if access is OK, an error code otherwise. - Do the capability checks, and require
PTRACE_MODE_ATTACH.
that's literally it, and honestly? iconic. she does her capability checks, she insists on PTRACE_MODE_ATTACH, and she reports back with 0 or an error code. no drama, no extra lore, just vibes and a return value. π₯
ngl bestie, "an error code otherwise" means exactly what it says β this function is not out here promising you a specific code. don't go inventing one. π
π SEE ALSO π
okay this is the part where she tags literally everyone in the group chat π β and we mean everyone. All of these, exactly as written, because we do not leave a single bestie on read π
First up, the file itself:
- Kernel file
./security/smack/smack_lsm.c
and nowβ¦ the entire extended friend group π§:
smk_fetch(9)init_inode_smack(9)init_task_smack(9)smk_copy_rules(9)smk_copy_relabel(9)smk_ptrace_mode(9)smk_ptrace_rule_check(9)smack_ptrace_access_check(9)smack_syslog(9)smack_sb_alloc_security(9)smack_fs_context_submount(9)smack_fs_context_dup(9)smack_fs_context_parse_param(9)smack_set_mnt_opts(9)smack_sb_statfs(9)smack_bprm_creds_for_exec(9)smack_inode_alloc_security(9)smk_rule_transmutes(9)smack_inode_init_security(9)smack_inode_link(9)smack_inode_unlink(9)smack_inode_rmdir(9)smack_inode_rename(9)smack_inode_permission(9)smack_inode_setattr(9)smack_inode_getattr(9)smack_inode_xattr_skipcap(9)smack_inode_setxattr(9)smack_inode_post_setxattr(9)smack_inode_getxattr(9)smack_inode_removexattr(9)smack_inode_set_acl(9)smack_inode_get_acl(9)smack_inode_remove_acl(9)smack_inode_getsecurity(9)smack_inode_listsecurity(9)smack_inode_getlsmprop(9)smack_file_alloc_security(9)smack_file_ioctl(9)smack_file_lock(9)smack_file_fcntl(9)smack_mmap_file(9)smack_file_set_fowner(9)smack_file_send_sigiotask(9)smack_file_receive(9)smack_file_open(9)smack_cred_alloc_blank(9)smack_cred_free(9)smack_cred_prepare(9)smack_cred_transfer(9)smack_cred_getsecid(9)smack_cred_getlsmprop(9)smack_kernel_act_as(9)smack_kernel_create_files_as(9)smk_curacc_on_task(9)smack_task_setpgid(9)smack_task_getpgid(9)smack_task_getsid(9)smack_current_getlsmprop_subj(9)smack_task_getlsmprop_obj(9)smack_task_setnice(9)smack_task_setioprio(9)smack_task_getioprio(9)smack_task_setscheduler(9)smack_task_getscheduler(9)smack_task_movememory(9)smack_task_kill(9)smack_task_to_inode(9)smack_sk_alloc_security(9)smack_sk_free_security(9)smack_sk_clone_security(9)smack_ipv4host_label(9)smack_ipv6host_label(9)smack_netlbl_add(9)smack_netlbl_delete(9)smk_ipv4_check(9)smk_ipv6_check(9)smk_ipv6_port_label(9)smk_ipv6_port_check(9)smack_inode_setsecurity(9)smack_socket_post_create(9)smack_socket_socketpair(9)smack_socket_bind(9)smack_socket_connect(9)smack_flags_to_may(9)smack_msg_msg_alloc_security(9)smack_of_ipc(9)smack_ipc_alloc_security(9)smk_curacc_shm(9)smack_shm_associate(9)smack_shm_shmctl(9)smack_shm_shmat(9)smk_curacc_sem(9)smack_sem_associate(9)smack_sem_semctl(9)smack_sem_semop(9)smk_tskacc_msq(9)smk_curacc_msq(9)smack_msg_queue_associate(9)smack_msg_queue_msgctl(9)smack_msg_queue_msgsnd(9)smack_msg_queue_msgrcv(9)smack_ipc_permission(9)smack_ipc_getlsmprop(9)smack_d_instantiate(9)smack_getselfattr(9)smack_getprocattr(9)do_setattr(9)smack_setselfattr(9)smack_setprocattr(9)smack_unix_stream_connect(9)smack_unix_may_send(9)smack_socket_sendmsg(9)smack_from_secattr(9)smack_from_skb(9)smack_from_netlbl(9)smack_socket_sock_rcv_skb(9)smack_socket_getpeersec_stream(9)smack_socket_getpeersec_dgram(9)smack_inet_conn_request(9)smack_inet_csk_clone(9)smack_key_alloc(9)smack_key_permission(9)smack_watch_key(9)smack_post_notification(9)smack_audit_rule_init(9)smack_audit_rule_known(9)smack_audit_rule_match(9)smack_ismaclabel(9)smack_to_secctx(9)smack_secid_to_secctx(9)smack_lsmprop_to_secctx(9)smack_secctx_to_secid(9)smack_uring_override_creds(9)smack_uring_sqpoll(9)smack_uring_cmd(9)smack_init(9)
likeβ¦ 137 of them (iykyk, don't count, just trust π). all tagged, all loved, none ghosted. π
π final vibe check: this page gives you the return-value rules and the PTRACE_MODE_ATTACH requirement. that's the whole meal. don't season it with facts that aren't here, bestie.
and that's the page!! π brought to you by the fine people over in ./security/smack β flavor of October 2026 β¨ go be iconic out there, and remember: capability checks first, PTRACE_MODE_ATTACH always. periodt. ππ¦
π¦ 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