如何使用 Samba 共享映射用户?

如何使用 Samba 共享映射用户?

我有一台 Synology Diskstation,上面有一个已发布的 Windows 共享。在服务器和客户端 (Ubuntu 12.04) 上,我都有用户名和密码匹配的用户帐户。(神话/神话)

共享已安装:

//192.168.88.1/plex  /mnt/plex  cifs  username=myth,password=xxxx  0  0

我可以创建、读取和删除共享上的文件。但无法编辑或覆盖它们。

它们的创建方式如下:

-rw-rw-r-- 1 1026 users  725178368 Mar 18 13:12

服务器(Synology DiskStation,运行 DSM4.1,他们自己的 Linux 版本)有一个名为 myth 的用户。客户端(Ubuntu 12.04)有一个名为 myth 的用户。两个帐户的密码相同。

因此,似乎我需要将 uid 1026 映射到用户 myth?我该怎么做?

来自 DiskStation 的 smb.conf:

[global]
    printcap name=cups
    winbind enum groups=yes
    security=user
    local master=no
    realm=*
    passdb backend=smbpasswd
    printing=cups
    winbind enum users=yes
    load printers=yes
    workgroup=WORKGROUP
[plex]
    invalid users=nobody,nobody
    valid users=nobody,guest,admin,myth,nobody
    comment="Storage Location For PlexMediaServer"
    path=/volume1/plex
    guest ok=yes
    browseable=yes
    fileindex=yes
    mediaindex=no
    edit synoacl=no
    enable recycle bin=yes
    recycle bin admin only=no
    hide unreadable=no
    ftp disable list=no
    ftp disable modify=no
    ftp disable download=no
    read list=nobody,guest,nobody
    write list=nobody,admin,myth,nobody
    writeable=yes

答案1

您要做的是设置一个 Samba 用户名映射文件。

在 /etc/samba/smb.conf 文件的 [Global] 部分中,您可以将“用户名映射”选项设置为映射文件的位置。

[global]
    username map = /pathToMapFile/usermap.txt

usermap.txt(或任何你想叫它的名字)包含以下格式的行:映射至 = 映射自例如,如果我想确保我的 Windows 计算机上的用户可以访问我的 Ubuntu 计算机上的 Samba 共享,我的 usermap.txt 文件将包含如下一行:

myUbuntuUserName = myWindowsUserName

当然,要看到这些变化,您需要重新启动 Samba 服务。

sudo service smbd restart

如果您需要更多帮助,请查看以下文档。官方 Samba 文档(如下)演示了如何将多个用户名映射到单个用户,甚至将组映射到用户。

用户名映射(G)

用户名映射 - 管理

相关内容