SAMBA - 未经群组许可,无法共享

SAMBA - 未经群组许可,无法共享

简而言之:如果目录在 Linux 机器上的权限为 700,而所有者是目录所有者,则不允许从 Windows 打开该目录。如果我将其更改为 750 或 770,它就可以正常工作。文件也会发生同样的情况(但权限为 600,而不是 640/660)。

更长的描述: 我正在 CentOS7 下重新安装我们的服务器。我们使用 samba 进行简单的目录共享。SELinux 已关闭,防火墙允许连接。

more /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

uname -r
3.10.0-862.2.3.el7.x86_64

sestatus
SELinux status:                 disabled

firewall-cmd --zone=public --list-all |grep samba
        rule family="ipv4" source address="XXX.YYY.ZZ.1/24" service name="samba" log prefix="samba" accept

rpm -qa |grep samba-4
samba-4.7.1-6.el7.x86_64

属于testusertestgroup

id
uid=1001(testuser) gid=1000(testgroup) groups=1000(testgroup),100(users)

Samba 的配置文件(某些选项如 write_list 不是必需的;valid_users 应该足够了 - 我很绝望):

[global]
# ...usual staff like master, group, netbios-name...
        load printers = no
        printing = cups
        veto files = /*.[mM][pP]3

        interfaces = lo enp3s0f0
        security = user
[TestUser]
        path = /home/testuser
        writeable = yes
        browseable = yes
        read only = no
        valid users = testuser
        write list = testuser
        read list = testuser
        printable = no
        create mask = 0640
        directory mask = 710
        force create mode = 0640
        force directory mode = 0710
        inherit acls = no
        inherit permissions = no

我测试了所有有问题的文件/目录,getfacl /home/testuser/SOME/PATH它们都具有 600/700 或 660/770 权限。

现在的问题是: 在 Windows 计算机上提供服务器的 IP 地址后,系统会询问我用户名/密码对,然后我从 Windows 计算机上看到 Linux 服务器上所有可用的共享 - 到目前为止一切正常。Samba 日志表明已testuser成功连接到服务TestUser。我选择自己的共享,然后...

...如果组对文件没有读取权限(或对目录没有读取权限),则不允许我从 Windows 打开文件/目录,但使用 登录后,我可以在 Linux 机器上执行任何操作ssh。如果我将权限更改为 644/750,那么我也可以从 Windows 处理这些文件。

如果强制 samba 使用 600/700 写入文件/目录,则会创建空文件/目录,并且 Windows 应用程序会立即告诉我,我无权对其进行操作。

我测试了许多不同的文件和目录掩码设置、创建等,/etc/samba/smb.conf但无法让它运行。

我不知道该如何解决这个问题。如能得到任何帮助我将不胜感激。

答案1

请尝试更改文件夹的所有权。还请用以下基本配置进行测试。我希望这能奏效。

[TestUser]
        path = /home/testuser
        browsable =yes
        writable = yes
        guest ok = yes

chown -R testuser:testgroup /home/testuser/
chmod -R 700 /home/testuser/

相关内容