00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __RSBAC_ADF_H
00011 #define __RSBAC_ADF_H
00012
00013 #include <linux/init.h>
00014 #include <linux/binfmts.h>
00015 #include <rsbac/types.h>
00016 #include <rsbac/debug.h>
00017 #include <rsbac/fs.h>
00018
00019
00020
00021
00022
00023
00024 #ifdef CONFIG_RSBAC_INIT_DELAY
00025 extern void rsbac_init_adf(void);
00026 #else
00027 extern void rsbac_init_adf(void) __init;
00028 #endif
00029
00030
00031
00032
00033
00034 extern enum rsbac_adf_req_ret_t
00035 rsbac_adf_request_int(enum rsbac_adf_request_t request,
00036 rsbac_pid_t caller_pid,
00037 enum rsbac_target_t target,
00038 union rsbac_target_id_t * tid_p,
00039 enum rsbac_attribute_t attr,
00040 union rsbac_attribute_value_t * attr_val_p,
00041 enum rsbac_switch_target_t ignore_module);
00042
00043
00044
00045
00046
00047
00048
00049 static inline enum rsbac_adf_req_ret_t
00050 rsbac_adf_request( enum rsbac_adf_request_t request,
00051 rsbac_pid_t caller_pid,
00052 enum rsbac_target_t target,
00053 union rsbac_target_id_t tid,
00054 enum rsbac_attribute_t attr,
00055 union rsbac_attribute_value_t attr_val)
00056 {
00057 return rsbac_adf_request_int(request,
00058 caller_pid,
00059 target,
00060 &tid,
00061 attr,
00062 &attr_val,
00063 SW_NONE);
00064 }
00065
00066
00067
00068
00069
00070
00071
00072
00073 extern int rsbac_adf_set_attr( enum rsbac_adf_request_t,
00074 rsbac_pid_t,
00075 enum rsbac_target_t,
00076 union rsbac_target_id_t,
00077 enum rsbac_target_t,
00078 union rsbac_target_id_t,
00079 enum rsbac_attribute_t,
00080 union rsbac_attribute_value_t);
00081
00082 #include <linux/types.h>
00083 #include <linux/dcache.h>
00084
00085 int rsbac_sec_del(struct dentry * dentry_p);
00086
00087 int rsbac_sec_trunc(struct dentry * dentry_p,
00088 loff_t new_len, loff_t old_len);
00089
00090
00091
00092
00093
00094 char * rsbac_symlink_redirect(
00095 struct dentry * dentry_p,
00096 const char * name,
00097 u_int maxlen);
00098
00099 #ifdef CONFIG_RSBAC_ALLOW_DAC_DISABLE_PART
00100 extern int rsbac_dac_part_disabled(struct dentry * dentry_p);
00101 #endif
00102
00103 #ifdef CONFIG_RSBAC_FAKE_ROOT_UID
00104 extern rsbac_uid_t rsbac_fake_uid(void);
00105 extern rsbac_uid_t rsbac_fake_euid(void);
00106 extern int rsbac_uid_faked(void);
00107 #endif
00108
00109 int rsbac_cap_check_envp(struct linux_binprm *bprm);
00110
00111 extern int rsbac_handle_filldir(const struct file *file, const char *name, const unsigned int namlen, const ino_t ino);
00112
00113 int rsbac_set_audit_uid(rsbac_uid_t uid);
00114
00115 #endif