From 03c24c51224e85eb96527a512f5f0483464fc810 Mon Sep 17 00:00:00 2001 From: Ophestra Umiker Date: Mon, 16 Sep 2024 20:32:07 +0900 Subject: move acl and xcb binding packages to top level These packages are reasonably clean and do not interact with other packages. Signed-off-by: Ophestra Umiker --- internal/acl/export.go | 86 -------------------------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 internal/acl/export.go (limited to 'internal/acl/export.go') diff --git a/internal/acl/export.go b/internal/acl/export.go deleted file mode 100644 index aeb8ed96..00000000 --- a/internal/acl/export.go +++ /dev/null @@ -1,86 +0,0 @@ -package acl - -import "unsafe" - -//#include -//#include -//#include -//#cgo linux LDFLAGS: -lacl -import "C" - -const ( - Read = C.ACL_READ - Write = C.ACL_WRITE - Execute = C.ACL_EXECUTE - - TypeDefault = C.ACL_TYPE_DEFAULT - TypeAccess = C.ACL_TYPE_ACCESS - - UndefinedTag = C.ACL_UNDEFINED_TAG - UserObj = C.ACL_USER_OBJ - User = C.ACL_USER - GroupObj = C.ACL_GROUP_OBJ - Group = C.ACL_GROUP - Mask = C.ACL_MASK - Other = C.ACL_OTHER -) - -func UpdatePerm(path string, uid int, perms ...C.acl_perm_t) error { - // read acl from file - a, err := aclGetFile(path, TypeAccess) - if err != nil { - return err - } - // free acl on return if get is successful - defer a.free() - - // remove existing entry - if err = a.removeEntry(User, uid); err != nil { - return err - } - - // create new entry if perms are passed - if len(perms) > 0 { - // create new acl entry - var e C.acl_entry_t - if _, err = C.acl_create_entry(&a.val, &e); err != nil { - return err - } - - // get perm set of new entry - var p C.acl_permset_t - if _, err = C.acl_get_permset(e, &p); err != nil { - return err - } - - // add target perms - for _, perm := range perms { - if _, err = C.acl_add_perm(p, perm); err != nil { - return err - } - } - - // set perm set to new entry - if _, err = C.acl_set_permset(e, p); err != nil { - return err - } - - // set user tag to new entry - if _, err = C.acl_set_tag_type(e, User); err != nil { - return err - } - - // set qualifier (uid) to new entry - if _, err = C.acl_set_qualifier(e, unsafe.Pointer(&uid)); err != nil { - return err - } - } - - // calculate mask after update - if _, err = C.acl_calc_mask(&a.val); err != nil { - return err - } - - // write acl to file - return a.setFile(path, TypeAccess) -} -- cgit v1.3.1