Begin committing support for Mandatory Access Control and extensible
kernel access control. The MAC framework permits loadable kernel modules to link to the kernel at compile-time, boot-time, or run-time, and augment the system security policy. This commit includes the initial kernel implementation, although the interface with the userland components of the operating system is still under work, and not all kernel subsystems are supported. Later in this commit sequence, documentation of which kernel subsystems will not work correctly with a kernel compiled with MAC support will be added. Introduce two node vnode operations required to support MAC. First, VOP_REFRESHLABEL(), which will be invoked by callers requiring that vp->v_label be sufficiently "fresh" for access control purposes. Second, VOP_SETLABEL(), which be invoked by callers requiring that the passed label contents be updated. The file system is responsible for updating v_label if appropriate in coordination with the MAC framework, as well as committing to disk. File systems that are not MAC-aware need not implement these VOPs, as the MAC framework will default to maintaining a single label for all vnodes based on the label on the file system mount point. Obtained from: TrustedBSD Project Sponsored by: DARPA, NAI Labs
This commit is contained in:
parent
f3cfa6072e
commit
f8ef020e2e
@ -556,3 +556,22 @@ vop_getvobject {
|
||||
IN struct vnode *vp;
|
||||
OUT struct vm_object **objpp;
|
||||
};
|
||||
|
||||
#
|
||||
#% refreshlabel vp L L L
|
||||
#
|
||||
vop_refreshlabel {
|
||||
IN struct vnode *vp;
|
||||
IN struct ucred *cred;
|
||||
IN struct thread *td;
|
||||
};
|
||||
|
||||
#
|
||||
#% setlabel vp L L L
|
||||
#
|
||||
vop_setlabel {
|
||||
IN struct vnode *vp;
|
||||
IN struct label *label;
|
||||
IN struct ucred *cred;
|
||||
IN struct thread *td;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user