⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 security.h

📁 linux 内核源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
 *	@len as input is the maximum length to copy to userspace provided *	by the caller. *	Return 0 if all is well, otherwise, typical getsockopt return *	values. * @socket_getpeersec_dgram: * 	This hook allows the security module to provide peer socket security * 	state for udp sockets on a per-packet basis to userspace via * 	getsockopt SO_GETPEERSEC.  The application must first have indicated * 	the IP_PASSSEC option via getsockopt.  It can then retrieve the * 	security state returned by this hook for a packet via the SCM_SECURITY * 	ancillary message type. * 	@skb is the skbuff for the packet being queried * 	@secdata is a pointer to a buffer in which to copy the security data * 	@seclen is the maximum length for @secdata * 	Return 0 on success, error on failure. * @sk_alloc_security: *      Allocate and attach a security structure to the sk->sk_security field, *      which is used to copy security attributes between local stream sockets. * @sk_free_security: *	Deallocate security structure. * @sk_clone_security: *	Clone/copy security structure. * @sk_getsecid: *	Retrieve the LSM-specific secid for the sock to enable caching of network *	authorizations. * @sock_graft: *	Sets the socket's isec sid to the sock's sid. * @inet_conn_request: *	Sets the openreq's sid to socket's sid with MLS portion taken from peer sid. * @inet_csk_clone: *	Sets the new child socket's sid to the openreq sid. * @inet_conn_established: *     Sets the connection's peersid to the secmark on skb. * @req_classify_flow: *	Sets the flow's sid to the openreq sid. * * Security hooks for XFRM operations. * * @xfrm_policy_alloc_security: *	@xp contains the xfrm_policy being added to Security Policy Database *	used by the XFRM system. *	@sec_ctx contains the security context information being provided by *	the user-level policy update program (e.g., setkey). *	Allocate a security structure to the xp->security field; the security *	field is initialized to NULL when the xfrm_policy is allocated. *	Return 0 if operation was successful (memory to allocate, legal context) * @xfrm_policy_clone_security: *	@old contains an existing xfrm_policy in the SPD. *	@new contains a new xfrm_policy being cloned from old. *	Allocate a security structure to the new->security field *	that contains the information from the old->security field. *	Return 0 if operation was successful (memory to allocate). * @xfrm_policy_free_security: *	@xp contains the xfrm_policy *	Deallocate xp->security. * @xfrm_policy_delete_security: *	@xp contains the xfrm_policy. *	Authorize deletion of xp->security. * @xfrm_state_alloc_security: *	@x contains the xfrm_state being added to the Security Association *	Database by the XFRM system. *	@sec_ctx contains the security context information being provided by *	the user-level SA generation program (e.g., setkey or racoon). *	@secid contains the secid from which to take the mls portion of the context. *	Allocate a security structure to the x->security field; the security *	field is initialized to NULL when the xfrm_state is allocated. Set the *	context to correspond to either sec_ctx or polsec, with the mls portion *	taken from secid in the latter case. *	Return 0 if operation was successful (memory to allocate, legal context). * @xfrm_state_free_security: *	@x contains the xfrm_state. *	Deallocate x->security. * @xfrm_state_delete_security: *	@x contains the xfrm_state. *	Authorize deletion of x->security. * @xfrm_policy_lookup: *	@xp contains the xfrm_policy for which the access control is being *	checked. *	@fl_secid contains the flow security label that is used to authorize *	access to the policy xp. *	@dir contains the direction of the flow (input or output). *	Check permission when a flow selects a xfrm_policy for processing *	XFRMs on a packet.  The hook is called when selecting either a *	per-socket policy or a generic xfrm policy. *	Return 0 if permission is granted, -ESRCH otherwise, or -errno *	on other errors. * @xfrm_state_pol_flow_match: *	@x contains the state to match. *	@xp contains the policy to check for a match. *	@fl contains the flow to check for a match. *	Return 1 if there is a match. * @xfrm_decode_session: *	@skb points to skb to decode. *	@secid points to the flow key secid to set. *	@ckall says if all xfrms used should be checked for same secid. *	Return 0 if ckall is zero or all xfrms used have the same secid. * * Security hooks affecting all Key Management operations * * @key_alloc: *	Permit allocation of a key and assign security data. Note that key does *	not have a serial number assigned at this point. *	@key points to the key. *	@flags is the allocation flags *	Return 0 if permission is granted, -ve error otherwise. * @key_free: *	Notification of destruction; free security data. *	@key points to the key. *	No return value. * @key_permission: *	See whether a specific operational right is granted to a process on a *      key. *	@key_ref refers to the key (key pointer + possession attribute bit). *	@context points to the process to provide the context against which to *       evaluate the security data on the key. *	@perm describes the combination of permissions required of this key. *	Return 1 if permission granted, 0 if permission denied and -ve it the *      normal permissions model should be effected. * * Security hooks affecting all System V IPC operations. * * @ipc_permission: *	Check permissions for access to IPC *	@ipcp contains the kernel IPC permission structure *	@flag contains the desired (requested) permission set *	Return 0 if permission is granted. * * Security hooks for individual messages held in System V IPC message queues * @msg_msg_alloc_security: *	Allocate and attach a security structure to the msg->security field. *	The security field is initialized to NULL when the structure is first *	created. *	@msg contains the message structure to be modified. *	Return 0 if operation was successful and permission is granted. * @msg_msg_free_security: *	Deallocate the security structure for this message. *	@msg contains the message structure to be modified. * * Security hooks for System V IPC Message Queues * * @msg_queue_alloc_security: *	Allocate and attach a security structure to the *	msq->q_perm.security field. The security field is initialized to *	NULL when the structure is first created. *	@msq contains the message queue structure to be modified. *	Return 0 if operation was successful and permission is granted. * @msg_queue_free_security: *	Deallocate security structure for this message queue. *	@msq contains the message queue structure to be modified. * @msg_queue_associate: *	Check permission when a message queue is requested through the *	msgget system call.  This hook is only called when returning the *	message queue identifier for an existing message queue, not when a *	new message queue is created. *	@msq contains the message queue to act upon. *	@msqflg contains the operation control flags. *	Return 0 if permission is granted. * @msg_queue_msgctl: *	Check permission when a message control operation specified by @cmd *	is to be performed on the message queue @msq. *	The @msq may be NULL, e.g. for IPC_INFO or MSG_INFO. *	@msq contains the message queue to act upon.  May be NULL. *	@cmd contains the operation to be performed. *	Return 0 if permission is granted.   * @msg_queue_msgsnd: *	Check permission before a message, @msg, is enqueued on the message *	queue, @msq. *	@msq contains the message queue to send message to. *	@msg contains the message to be enqueued. *	@msqflg contains operational flags. *	Return 0 if permission is granted. * @msg_queue_msgrcv: *	Check permission before a message, @msg, is removed from the message *	queue, @msq.  The @target task structure contains a pointer to the  *	process that will be receiving the message (not equal to the current  *	process when inline receives are being performed). *	@msq contains the message queue to retrieve message from. *	@msg contains the message destination. *	@target contains the task structure for recipient process. *	@type contains the type of message requested. *	@mode contains the operational flags. *	Return 0 if permission is granted. * * Security hooks for System V Shared Memory Segments * * @shm_alloc_security: *	Allocate and attach a security structure to the shp->shm_perm.security *	field.  The security field is initialized to NULL when the structure is *	first created. *	@shp contains the shared memory structure to be modified. *	Return 0 if operation was successful and permission is granted. * @shm_free_security: *	Deallocate the security struct for this memory segment. *	@shp contains the shared memory structure to be modified. * @shm_associate: *	Check permission when a shared memory region is requested through the *	shmget system call.  This hook is only called when returning the shared *	memory region identifier for an existing region, not when a new shared *	memory region is created. *	@shp contains the shared memory structure to be modified. *	@shmflg contains the operation control flags. *	Return 0 if permission is granted. * @shm_shmctl: *	Check permission when a shared memory control operation specified by *	@cmd is to be performed on the shared memory region @shp. *	The @shp may be NULL, e.g. for IPC_INFO or SHM_INFO. *	@shp contains shared memory structure to be modified. *	@cmd contains the operation to be performed. *	Return 0 if permission is granted. * @shm_shmat: *	Check permissions prior to allowing the shmat system call to attach the *	shared memory segment @shp to the data segment of the calling process. *	The attaching address is specified by @shmaddr. *	@shp contains the shared memory structure to be modified. *	@shmaddr contains the address to attach memory region to. *	@shmflg contains the operational flags. *	Return 0 if permission is granted. * * Security hooks for System V Semaphores * * @sem_alloc_security: *	Allocate and attach a security structure to the sma->sem_perm.security *	field.  The security field is initialized to NULL when the structure is *	first created. *	@sma contains the semaphore structure *	Return 0 if operation was successful and permission is granted. * @sem_free_security: *	deallocate security struct for this semaphore *	@sma contains the semaphore structure. * @sem_associate: *	Check permission when a semaphore is requested through the semget *	system call.  This hook is only called when returning the semaphore *	identifier for an existing semaphore, not when a new one must be *	created. *	@sma contains the semaphore structure. *	@semflg contains the operation control flags. *	Return 0 if permission is granted. * @sem_semctl: *	Check permission when a semaphore operation specified by @cmd is to be *	performed on the semaphore @sma.  The @sma may be NULL, e.g. for  *	IPC_INFO or SEM_INFO. *	@sma contains the semaphore structure.  May be NULL. *	@cmd contains the operation to be performed. *	Return 0 if permission is granted. * @sem_semop *	Check permissions before performing operations on members of the *	semaphore set @sma.  If the @alter flag is nonzero, the semaphore set  *      may be modified. *	@sma contains the semaphore structure. *	@sops contains the operations to perform. *	@nsops contains the number of operations to perform. *	@alter contains the flag indicating whether changes are to be made. *	Return 0 if permission is granted. * * @ptrace: *	Check permission before allowing the @parent process to trace the *	@child process. *	Security modules may also want to perform a process tracing check *	during an execve in the set_security or apply_creds hooks of *	binprm_security_ops if the process is being traced and its security *	attributes would be changed by the execve. *	@parent contains the task_struct structure for parent process. *	@child contains the task_struct structure for child process. *	Return 0 if permission is granted. * @capget: *	Get the @effective, @inheritable, and @permitted capability sets for *	the @target process.  The hook may also perform permission checking to *	determine if the current process is allowed to see the capability sets *	of the @target process. *	@target contains the task_struct structure for target process. *	@effective contains the effective capability set. *	@inheritable contains the inheritable capability set. *	@permitted contains the permitted capability set. *	Return 0 if the capability sets were successfully obtained. * @capset_check: *	Check permission before setting the @effective, @inheritable, and *	@permitted capability sets for the @target process. *	Caveat:  @target is also set to current if a set of processes is *	specified (i.e. all processes other than current and init or a *	particular process group).  Hence, the capset_set hook may need to *	revalidate permission to the actual target process.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -