2020-11-09 05:23:58 +01:00
|
|
|
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
2013-10-09 19:52:15 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
/***
|
2018-06-12 19:00:24 +02:00
|
|
|
Copyright © 2013 Intel Corporation
|
2013-10-09 19:52:15 +02:00
|
|
|
|
|
|
|
Author: Auke Kok <auke-jan.h.kok@intel.com>
|
|
|
|
***/
|
|
|
|
|
|
|
|
#include <stdbool.h>
|
2015-11-30 21:43:37 +01:00
|
|
|
#include <sys/types.h>
|
2013-10-09 19:52:15 +02:00
|
|
|
|
2018-03-27 07:38:26 +02:00
|
|
|
#include "label.h"
|
2015-07-27 19:43:55 +02:00
|
|
|
#include "macro.h"
|
|
|
|
|
2015-10-06 12:08:16 +02:00
|
|
|
#define SMACK_FLOOR_LABEL "_"
|
|
|
|
#define SMACK_STAR_LABEL "*"
|
|
|
|
|
2015-07-27 19:43:55 +02:00
|
|
|
typedef enum SmackAttr {
|
2018-03-27 07:38:26 +02:00
|
|
|
SMACK_ATTR_ACCESS,
|
|
|
|
SMACK_ATTR_EXEC,
|
|
|
|
SMACK_ATTR_MMAP,
|
|
|
|
SMACK_ATTR_TRANSMUTE,
|
|
|
|
SMACK_ATTR_IPIN,
|
|
|
|
SMACK_ATTR_IPOUT,
|
2015-07-27 19:43:55 +02:00
|
|
|
_SMACK_ATTR_MAX,
|
|
|
|
_SMACK_ATTR_INVALID = -1,
|
|
|
|
} SmackAttr;
|
|
|
|
|
2014-10-23 17:34:30 +02:00
|
|
|
bool mac_smack_use(void);
|
2014-02-19 16:56:34 +01:00
|
|
|
|
2020-02-18 12:18:39 +01:00
|
|
|
int mac_smack_fix_container(const char *path, const char *inside_path, LabelFixFlags flags);
|
|
|
|
static inline int mac_smack_fix(const char *path, LabelFixFlags flags) {
|
|
|
|
return mac_smack_fix_container(path, path, flags);
|
|
|
|
}
|
|
|
|
|
2018-06-30 12:19:55 +02:00
|
|
|
int mac_smack_fix_at(int dirfd, const char *path, LabelFixFlags flags);
|
2014-10-23 17:49:29 +02:00
|
|
|
|
2015-07-27 19:43:55 +02:00
|
|
|
const char* smack_attr_to_string(SmackAttr i) _const_;
|
|
|
|
SmackAttr smack_attr_from_string(const char *s) _pure_;
|
|
|
|
int mac_smack_read(const char *path, SmackAttr attr, char **label);
|
|
|
|
int mac_smack_read_fd(int fd, SmackAttr attr, char **label);
|
|
|
|
int mac_smack_apply(const char *path, SmackAttr attr, const char *label);
|
|
|
|
int mac_smack_apply_fd(int fd, SmackAttr attr, const char *label);
|
2014-11-24 12:46:20 +01:00
|
|
|
int mac_smack_apply_pid(pid_t pid, const char *label);
|
2015-09-08 07:58:22 +02:00
|
|
|
int mac_smack_copy(const char *dest, const char *src);
|