Mac 客户端无法设置 Samba 共享的权限

Mac 客户端无法设置 Samba 共享的权限

我在本地家庭网络的 Debian 服务器上运行 Samba。 Samba 版本是4.9.5-Debian.我的 Mac Mini(带有 Big Sur)连接到该服务器。一个共享用于时间机器备份,另一个共享用于存储数据。时间机器备份似乎有效(至少时间机器没有抱怨,我成功地从备份中恢复了单个文件)。

但是,我注意到数据共享的权限无法正常工作。如果我尝试更改文件或文件夹的权限(例如使用 )chmod 640 testfile.txt,则共享上的权限不会受到影响。权限始终保持不变。

我已经根据在互联网上找到的信息以及阅读man smb.confman vfs_fruit.

我将这些参数添加到 smb.conf 文件的全局部分:

   server min protocol = SMB3_00
   ea support = yes
   vfs objects = acl_xattr catia fruit streams_xattr
   fruit:aapl = yes
   fruit:metadata = netatalk
   fruit:resource = file
   fruit:encoding = native
   fruit:copyfile = yes
   fruit:model = MacSamba
   fruit:veto_appledouble = no
   fruit:posix_rename = yes
   fruit:zero_file_id = yes
   fruit:wipe_intentionally_left_blank_rfork = yes
   fruit:delete_empty_adfiles = yes
   fruit:nfs_aces = no

数据共享配置如下:

[DataShare]
   comment = Samba data share
   path = /srv/samba/datashare
   browseable = yes
   read only = no
   guest ok = no
   valid users = myuser
   create mask = 0777
   directory mask = 0777

我是 Samba 新手,对所有不同的参数有点困惑。现在我不知道为什么我的 Mac 客户端无法为共享上的文件设置文件权限。

对于简单地存储文件来说,这甚至可能没问题,但它会导致应用程序出现问题。举个例子,我想将我的大型图片库放在共享上。我将其复制到那里并想用苹果的照片应用程序打开它 - 但照片无法做到这一点,说权限已损坏,并且也无法修复权限。

我真的很感谢一些帮助,因为我很想让这个设置正常工作。

答案1

我迟到了,但我不能成为那个发现了一个有效的解决方案(至少对我来说)而不把它放在那里的人,因为我一直是那个对“nvm 修复了它”尖叫的人没有详细说明的评论;)

您的第一步是检查您的fstab.你需要确保你有

  1. 已启用xattrs对您共享的文件系统的支持,请检查您的fstab.

  2. 当您在那里时,也在挂载选项中启用了 ACL。像这样,根据您的环境进行调整:

    /dev/disk/by-label/nas1 /mnt/nas1 ext4 defaults,user_xattr,acl,commit=60 0 2
    

    我刚刚花了几个小时对出现权限错误的原因进行故障排除。我只是忘记了第2点。

我的其余设置已经很好,比我想象的要少得多:

  1. 将其放入smb.conf[global] 部分:

    [global]
    vfs objects = fruit catia streams_xattr acl_xattr
    map acl inherit = yes
    fruit:aapl = yes
    fruit:model = MacSamba
    fruit:metadata = stream
    readdir_attr:aapl_rsize = yes
    readdir_attr:aapl_finder_info = yes
    readdir_attr:aapl_max_access = yes
    

    如果您想知道这些设置的作用,我谦虚地建议您$> man smb.conf(不是对OP的挖苦,我将他们帖子中的文本与之前另一个更......无知的帖子混淆了。)

文件的其余部分可以保持默认。如果您是 Windows 3.11 老用户并且关心在我的 LAN 上同步工作组名称,请更改您的工作组名称。

  1. 在您想要支持标签的共享中,这些选项对我来说效果很好:
    [Pr0n]
      comment = Pr0n
      path = /mnt/nas1/Pr0n
      browseable = no
      guest ok = no
      read only = no
      writable = yes
      valid users = 
    
    [ -- snip -- ]
    
      force directory mode = 0775
      force create mode = 0664
    
      # Fruit config
      fruit:posix_rename = yes
      fruit:veto_appledouble = yes
      fruit:nfs_aces = yes
      fruit:wipe_intentionally_left_blank_rfork = no
      fruit:delete_empty_adfiles = no
    

该目录由我的个人用户和组拥有,我不需要费力地使用 net grantSeDiskOperatorStatus或任何其他内容。

重新启动一次后(也许也可以,对吧)一切都会自动好起来,并且标签都被允许并粘贴。

答案2

您的 PAM(可插入身份验证模块)设置可能会否决您的目录掩码并创建掩码设置。检查行:在 smb.conf 中遵守 pam 限制 = no。应该可以解决问题。

相关内容