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

Rob*_*J1M 7 fstab mount samba

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

该共享安装有:

//192.168.88.1/plex  /mnt/plex  cifs  username=myth,password=xxxx  0  0
Run Code Online (Sandbox Code Playgroud)

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

它们被创建为:

-rw-rw-r-- 1 1026 users  725178368 Mar 18 13:12
Run Code Online (Sandbox Code Playgroud)

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

所以,似乎我需要将 uid 1026 映射到用户神话?我怎么做?

来自 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
Run Code Online (Sandbox Code Playgroud)

Aar*_*ron 9

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

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

[global]
    username map = /pathToMapFile/usermap.txt
Run Code Online (Sandbox Code Playgroud)

usermap.txt(或任何您想调用的文件)包含格式为mapTo = mapFrom样式的。例如,如果我想确保我的 Windows 机器上的用户可以访问我的 Ubuntu 机器上的 Samba 共享,我的 usermap.txt 文件将包含如下一行:

myUbuntuUserName = myWindowsUserName
Run Code Online (Sandbox Code Playgroud)

当然,要查看这些更改,您需要重新启动 Samba 服务。

sudo service smbd restart
Run Code Online (Sandbox Code Playgroud)

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

用户名地图 (G)

用户名映射 - 管理

  • 五年后,我记得勾选正确答案按钮!(哎呀) (2认同)