【问题标题】:Can't modify samba share files on container from MAC host无法从 MAC 主机修改容器上的 samba 共享文件
【发布时间】:2017-12-11 09:59:48
【问题描述】:

我正在运行 docker 容器。在那里运行arch linux。

在容器内,我有一些我想从我的 MAC 访问的文件夹/文件。

我正在使用 samba 共享将文件从容器共享到我的 MAC。到目前为止,它正在工作,因此我可以查看文件、浏览它们并打开它们。 问题是我无法修改它们,每次我尝试这样做时都会被拒绝。看到权限说我在共享的文件夹上有 rwx,但该文件夹中的文件只有 r-- 权限。 (从容器内部查看)

在创建共享之前,我还创建了一个名为 User1 的新用户,并在使用 mount_smbfs 进行挂载时使用该用户。

我的 smb.conf 设置如下:

[myshare]
   comment = development
   path = /tmp
   valid users = User1
   browseable = yes
   writeable = yes
   guest ok = no
   create mask = 0775
   directory mask = 0775
   force user = User1

【问题讨论】:

  • 您的 selinux 状态如何?它在执行吗?
  • 没有selinux这样的东西。
  • 你能检查一下umask吗?您可能需要使用force create mode 来设置权限。
  • 表示umask是0022。
  • 您要么需要更改 umask,要么将 force create mode 设置为 0775

标签: linux macos docker containers samba


【解决方案1】:

您应该查看smb.conf 的手册。可能是umask严格,新创建的文件没有足够的权限供用户写入或执行。

创建掩码 (S)

创建文件时,根据从 DOS 模式到 UNIX 的映射计算必要的权限 权限,然后生成的 UNIX 模式是 与此参数按位“与”。这个参数可以被认为是文件的 UNIX 模式的按位 MASK。任何一点 此处未设置将被删除 创建文件时设置的模式。

强制创建模式(S)

此参数指定一组 UNIX 模式位权限,这些权限将始终在由 Samba 创建的文件上设置。这是由 按位“或”这些位到 正在创建的文件的模式位。此参数的默认值为(八进制)000。此参数中的模式为 按位“或”到文件模式 应用创建掩码参数中设置的掩码后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多