Exacl

Rust library to manipulate file system access control lists (ACL) on macOS, Linux, and FreeBSD.
Example
use ;
// Get the ACL from "./tmp/foo".
let mut acl = getfacl?;
// Print the contents of the ACL.
for entry in &acl
// Add an ACL entry to the end.
acl.push;
// Set the ACL for "./tmp/foo".
setfacl?;
API
This module provides two high level functions, getfacl and setfacl.
getfaclretrieves the ACL for a file or directory.setfaclsets the ACL for files or directories.
On Linux and FreeBSD, the ACL contains entries for the default ACL, if present.
Both getfacl and setfacl work with a Vec<AclEntry>. The
AclEntry structure contains five fields:
- kind :
AclEntryKind- the kind of entry (User, Group, Other, Mask, or Unknown). - name :
String- name of the principal being given access. You can use a user/group name, decimal uid/gid, or UUID (on macOS). - perms :
Perm- permission bits for the entry. - flags :
Flag- flags indicating whether an entry is inherited, etc. - allow :
bool- true if entry is allowed; false means deny. Linux only supports allow=true.