如何设置 Samba 的写权限?

如何设置 Samba 的写权限?

我已经搜索了大约 6 个小时来尝试设置我的 samba(版本 4.6.7)服务器,但我无法让我的用户创建具有-rw-rw---- 权限的文件。

首先,让我解释一下我的最终目标(也许有比我目前正在研究的更简单的解决方案,如果有的话告诉我):我想要有 1 个无需身份验证即可使用的共享、1 个仅可由用户“foo”访问的共享以及 1 个仅可由用户“bar”访问的共享。

以下是我目前所做的工作:我创建了 UNIX 用户“main”、“foo”和“bar”,他们都在 UNIX 组“smbusers”中。我还将用户“nobody”添加到组“smbusers”。然后我在中创建了共享/tmp/testshare,具有以下权限:

> ls -la /tmp/testshare
drwxrws---  5 main smbusers 4096 Dec 24 17:29 .
drwxrwxrwt 12 root root     4096 Dec 24 17:28 ..
drwxrws---  2 main smbusers 4096 Dec 24 17:29 bar
drwxrws---  2 main smbusers 4096 Dec 24 17:29 foo
drwxrws---  2 main smbusers 4096 Dec 24 17:28 Public

这是我的配置smb.conf

[global]
    server string = %h server (Samba, Ubuntu)
    server role = standalone server
    os level = 20
    workgroup = WORKGROUP
    writeable = yes
    security = user
    map to guest = bad password
    force user = main
    force group = smbusers
    create mask = 0660
    force create mode = 0660
    directory mask = 0770
    force directory mode = 0770
    encrypt passwords = yes
    unix password sync = yes
    passdb backend = tdbsam
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    passwd program = /usr/bin/passwd %u
    pam password change = yes
    obey pam restrictions = yes
    panic action = /usr/share/samba/panic-action %d
    max log size = 1000
    log file = /var/log/samba/log.%m
    dns proxy = no
    socket options = TCP_NODELAY

[Public]
    path = /tmp/testshare/public
    guest ok = yes

[bar]
    path = /tmp/testshare/bar
    valid users = bar

[foo]
    path = /tmp/testshare/foo
    valid users = foo

更新:现在,在 Windows 中,如果我以访客身份(又名“nobody:nogroup”)创建文件,这些文件将被赋予我设置的正确权限,但是,只要我连接到任何帐户“foo”或“bar”,它就会拒绝为该组设置写权限(或者甚至拒绝为任何人设置写权限,正如我稍后尝试的那样create mask = 0222):

#I created these two without authenticating myself
> ls -lA /tmp/testshare/public
-rw-rw---- 1 main smbusers    0 Dec 24 19:43 New Text Document.txt
drwxrwx--- 2 main smbusers 4096 Dec 24 19:43 New Folder

#I created these two after I succesfully authenticated myself as "foo".
> ls -lA /tmp/testshare/public
-rw-r----- 1 main smbusers    0 Dec 24 19:43 New Text Document.txt
drwxr-x--- 2 main smbusers 4096 Dec 24 19:43 New Folder

如您所见,一旦我验证了自己的身份,它就拒绝向该组授予写权限,因此我无法从 Windows 编辑文件。

我需要做哪些更改才能使其按预期工作?我怀疑帐户配置不正确,但我不知道我做错了什么。

注意:我还应该提到,testshare我用于测试的文件夹位于运行我的Ubuntu 服务器 17.10,而我的真实设置将使用安装在 ntfs-3g 中的外部驱动器。

更新2:我尝试在 ntfs-3g 中安装的外部驱动器上进行相同的设置,一切正常。不过我仍然很好奇为什么它在我的文件夹中不起作用/tmp/testshare...

相关内容