FS_COPYACL(1)

πŸ’– FS_COPYACL β€” the AFS Command Reference girlies know πŸ’–

okay bestie so this is fs_copyacl(1), from the AFS Command Reference family, and it's literally the "copy my ACL to my friends" command. no cap. let's get into it πŸ¦‹


✨ NAME ✨

fs_copyacl β€” copies an ACL from a directory to one or more other directories. it's giving "sharing my permissions with the group chat" πŸ’…


✨ SYNOPSIS ✨

fs copyacl -fromdir <source directory (or DFS file)>
    -todir <destination directory (or DFS file)>+
    [-clear] [-id] [-if] [-help]

fs co -f <source directory (or DFS file)>
    -t <destination directory (or DFS file)>+
    [-c] [-id] [-if] [-h]

note the + after -todir / -t, bestie β€” you can hand it more than one destination and she'll eat every single time πŸ‘‘


✨ DESCRIPTION ✨

so fs copyacl copies the access control list (ACL, if you wanna be casual about it) from a source directory over to each destination directory you name. the source directory's ACL? untouched. untouched!! she is not changing for anyone πŸ’…

the destination directory's ACL does obey the following rules though, lowkey strict:

  • If an entry on the source ACL does not already exist on the destination ACL, it gets added. welcome to the party πŸŽ‰
  • If an entry exists on both the source and destination ACLs, the permissions from the source ACL entry replace the current permissions on the destination ACL entry. new year new perms fr fr.
  • If an entry on the destination ACL has no corresponding entry on the source ACL, it gets removed if the -clear flag is included and is unchanged otherwise. so basically: if -clear is on, the source ACL completely replaces the destination ACL. full main character takeover, periodt.

and hmm when you're using this command to copy ACLs between objects in DFS filespace accessed via the AFS/DFS Migration Toolkit Protocol Translator, it is possible to specify files, as well as directories, with the -fromdir and -todir arguments. cute πŸŽ€


🚨 CAUTIONS 🚨

Do not copy ACLs between AFS and DFS files or directories. the ACL formats are incompatible. like, incompatible incompatible. don't do it, i'm begging 😭

✨ OPTIONS ✨

  • -fromdir <source directory> β€” specifies the source directory from which to copy the ACL. (specifying an AFS file copies its directory's ACL, but specifying a DFS file copies its own ACL.) a partial pathname is interpreted relative to the current working directory.
  • -todir <destination directory> β€” specifies each directory for which to alter the ACL to match the source ACL. (specifying an AFS file halts the command with an error, but specifying a DFS file alters the file's ACL.) a partial pathname is interpreted relative to the current working directory.

specify the read/write path to each directory (or DFS file), to avoid the failure that results from attempting to change a read-only volume. by convention, the read/write path is indicated by placing a period before the cell name at the pathname's second level (for example, /afs/.example.com). for further discussion of the concept of read/write and read-only paths through the filespace, see the fs mkmount reference page.

  • -clear β€” replaces the ACL of each destination directory with the source ACL. no survivors, only source perms πŸ”₯
  • -id β€” modifies the Initial Container ACL of each DFS directory named by the -todir argument, rather than the regular Object ACL. this argument is supported only when both the source and each destination directory reside in DFS and are accessed via the AFS/DFS Migration Toolkit Protocol Translator.
  • -if β€” modifies the Initial Object ACL of each DFS directory named by the -todir argument, rather than the regular Object ACL. this argument is supported only when both the source and each destination directory reside in DFS and are accessed via the AFS/DFS Migration Toolkit Protocol Translator.
  • -help β€” prints the online help for this command. all other valid options are ignored.

✨ EXAMPLES ✨

okay so here's the vibe: this command copies the current working directory's ACL to its subdirectory called reports. note that the source directory's ACL is unaffected. and entries on the reports directory that are not on the source ACL of the current directory remain unaffected as well, because the -clear flag is not used. she's gentle like that πŸ₯Ί

% fs listacl . reports
Access list for . is
Normal rights:
   pat rlidwka
   smith rlidwk
Access list for reports is
Normal rights:
   pat rl
   pat:friends rl
Negative rights
   jones rlidwka

% fs copyacl -fromdir . -todir reports

% fs listacl . reports
Access list for . is
Normal rights:
   pat rlidwka
   smith rlidwk
Access list for reports is
Normal rights:
   pat rlidwka
   pat:friends rl
   smith rlidwk
Negative rights
   jones rlidwka

see how pat leveled up from rl to rlidwka and smith showed up?? ate. πŸ’…βœ¨


✨ PRIVILEGE REQUIRED ✨

to copy an ACL between AFS objects, the issuer must have the l (lookup) permission on the source directory's ACL and the a (administer) permission on each destination directory's ACL. if the -fromdir argument names a file rather than a directory, the issuer must have both the l and r (read) permissions on the ACL of the file's directory.

to copy an ACL between DFS objects, the issuer must have the r permission on the source directory or file's ACL and the c (control) permission on each destination directory or file's ACL. that's the price of admission bestie, no exceptions 🫢


πŸ‘€ SEE ALSO πŸ‘€

fs_listacl(1), fs_mkmount(1), fs_setacl(1)

go read those next, iykyk 🌸


IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.


and that's the whole page, bestie!! this one came straight from OpenAFS, dated 2026-07-27, and it's literally iconic for it. go copy those ACLs responsibly πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from