ACLs能够实现权限精细设置。man chmod 可以获得在线帮助
简单说,如果要实现所有人对“/Users/Shared/jenkins/workspace/lg_black_apple”目录中的所有文件和目录都有“全权限”,那么使用下面的一行命令:chmod -R +a "group:everyone allow delete,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,list,search,add_file,add_subdirectory,delete_child,read,write,append,execute,file_inherit,directory_inherit" /Users/Shared/jenkins/workspace/lg_black_apple
简单解释就是,给目录“/Users/Shared/jenkins/workspace/lg_black_apple”中每个文件或目录,给所有用户 (everyone组) 以所有的读写运行删除等的权限。为了适合自己的情况,需要仔细考虑用户/群组的权限。
当然,运行上面命令的用户首先对被操作的目录具有 rwx 的权限,否则就要用 sudo 了。
其它,有帮助的命令还有:
显示ACLs:ls -lea /Users/Shared/jenkins/workspace/lg_black_apple
清除所有的ACLs:chmod -R -N /Users/Shared/jenkins/workspace/lg_black_apple
另外,也要注意其中的问题,比如并不是所有的app都会遵循ACLs的;特殊情况,比如相同文件卷或者在不同文件卷之间内移动或复制文件的不同效果;如果是网络共享,那么使用SMB/AFP等协议,要有些特殊设置;在非macOS文件卷上、使用第三方的文件格式读写软件等等,操作也会受到限制;与其它操作系统Windows/Linux的互操作等等等,很多的使用场景需要考虑测试和评估。
如果使用在线帮助不太清楚,也可以参考我的书《OS X系统管理与部署》中相关的章节有相关的比较详细的解释和实例。当然,该书中的解释还没有很多情景没有覆盖,需要改进。
“我可能会从我的建议或链接得到财务,或者其它形式的补偿[经过版主编辑]”