通过数字 UID 指定 Samba“强制用户”用户名?

通过数字 UID 指定 Samba“强制用户”用户名?

我希望能够通过 Samba 从 Docker 容器共享命名卷。Samba 作为本机服务在主机系统上运行(而不是在 Docker 中)。Docker 容器以特定 UID 运行,因此其卷中的所有文件也归该 UID 所有。

主机系统没有与该 UID 对应的用户。

为了确保所有文件继续归正确的 UID 所有,我想使用参数force user强制 Samba 访问具有 UID 的所有文件。以下是共享配置:

[container]
    comment = Docker container storage
    path = /var/lib/docker/volumes/appdata/_data
    force user = 1001
    valid users = # my username here
    writable = yes

问题是该force user命令似乎不起作用,因为它将用户 ID 指定为数字。我根本无法访问共享(我收到来自 Windows 的拒绝访问消息),所以我猜它默认为“nobody”用户,该用户确实无权访问容器的数据文件夹。

Samba 文档指定参数force user“指定 UNIX用户名将被指定为默认用户”(强调我的)。这似乎表明您不能使用数字 UID 作为“用户名”。

除了在主机系统上手动创建与 UID 匹配的用户之外,还有其他选择吗?存在潜在的安全风险,如果另一个容器在同一个主机 UID 下运行,Samba 用户可能能够以某种方式访问​​另一个容器的数据。

相关内容