]>
Commit | Line | Data |
---|---|---|
663996b3 MS |
1 | /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ |
2 | ||
3 | #pragma once | |
4 | ||
5 | /*** | |
6 | This file is part of systemd. | |
7 | ||
8 | Copyright 2011 Lennart Poettering | |
9 | ||
10 | systemd is free software; you can redistribute it and/or modify it | |
11 | under the terms of the GNU Lesser General Public License as published by | |
12 | the Free Software Foundation; either version 2.1 of the License, or | |
13 | (at your option) any later version. | |
14 | ||
15 | systemd is distributed in the hope that it will be useful, but | |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
18 | Lesser General Public License for more details. | |
19 | ||
20 | You should have received a copy of the GNU Lesser General Public License | |
21 | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
22 | ***/ | |
23 | ||
e735f4d4 MP |
24 | #ifdef HAVE_ACL |
25 | ||
663996b3 | 26 | #include <stdbool.h> |
e735f4d4 MP |
27 | #include <sys/acl.h> |
28 | #include <acl/libacl.h> | |
29 | ||
30 | #include "macro.h" | |
663996b3 MS |
31 | |
32 | int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry); | |
14228c0d | 33 | int calc_acl_mask_if_needed(acl_t *acl_p); |
e735f4d4 | 34 | int add_base_acls_if_needed(acl_t *acl_p, const char *path); |
e3bff60a | 35 | int acl_search_groups(const char* path, char ***ret_groups); |
86f210e9 | 36 | int parse_acl(const char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask); |
e735f4d4 | 37 | int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl); |
e842803a | 38 | |
e735f4d4 MP |
39 | /* acl_free takes multiple argument types. |
40 | * Multiple cleanup functions are necessary. */ | |
41 | DEFINE_TRIVIAL_CLEANUP_FUNC(acl_t, acl_free); | |
42 | #define acl_free_charp acl_free | |
43 | DEFINE_TRIVIAL_CLEANUP_FUNC(char*, acl_free_charp); | |
e3bff60a MP |
44 | #define acl_free_uid_tp acl_free |
45 | DEFINE_TRIVIAL_CLEANUP_FUNC(uid_t*, acl_free_uid_tp); | |
46 | #define acl_free_gid_tp acl_free | |
47 | DEFINE_TRIVIAL_CLEANUP_FUNC(gid_t*, acl_free_gid_tp); | |
e842803a | 48 | |
e735f4d4 | 49 | #endif |