OSX外接USB驱动器文件权限自动变只读,如何永久赋予双用户写入权限?
解决跨macOS用户共享文件夹权限丢失的问题
我之前在跨版本macOS共享外接硬盘时也碰到过一模一样的权限问题——用户修改文件后对方的写入权限就没了,核心原因是默认的POSIX权限会被文件创建者的权限覆盖,而ACL或者用户组继承能从根本上解决这个问题。给你几个实用的方案:
方案一:用ACL(访问控制列表)强制保留权限
ACL比传统的POSIX权限更灵活,能强制让指定用户始终拥有权限,不会被修改覆盖。步骤如下:
- 先确认你的外接HDD格式是Mac OS Extended(Journaled)(Time Machine要求这个格式,ACL也只在这个格式下生效)
- 打开「终端」,定位到共享文件夹所在目录。假设你的共享文件夹叫
SharedDocs,挂载在/Volumes/BackupHDD,输入命令:cd /Volumes/BackupHDD - 给
gm和md用户添加带有继承属性的ACL权限:
这里的# 给gm添加权限,确保新文件/文件夹都继承 chmod +a "gm allow read,write,append,delete,add_file,add_subdirectory,file_inherit,directory_inherit" SharedDocs # 给md添加同样的权限 chmod +a "md allow read,write,append,delete,add_file,add_subdirectory,file_inherit,directory_inherit" SharedDocsfile_inherit和directory_inherit是关键——它们会让后续创建的所有文件和子文件夹自动继承这两个用户的写入权限,不会再出现修改后权限丢失的情况。
方案二:用用户组统一管理权限
把gm和md加到同一个用户组,通过组权限来确保双方都能写入:
- 打开终端,创建一个新的共享用户组(比如叫
sharedusers):sudo dscl . create /Groups/sharedusers - 把
gm和md加入这个组:sudo dscl . append /Groups/sharedusers GroupMembership gm sudo dscl . append /Groups/sharedusers GroupMembership md - 给共享文件夹设置组读写权限,并开启SGID位(让新文件自动继承组属性):
这样不管是# 递归设置现有文件的组权限 chmod -R g+rwx SharedDocs # 开启SGID位,确保新创建的文件/文件夹都属于sharedusers组 chmod g+s SharedDocsgm还是md创建的文件,组都会是sharedusers,双方都能正常读写。
额外注意事项
- 确保你的共享文件夹不在Time Machine的
Backups.backupdb目录下——Time Machine会自动管理备份目录的权限,可能会覆盖你设置的共享权限,把共享文件放在备份目录外的独立文件夹里。 - 修改权限前建议先备份共享文件夹的内容,避免操作失误导致文件丢失。
内容的提问来源于stack exchange,提问作者Urkusk Shrakz
相关产品推荐
相关产品推荐

