SAMBA 问题:核心文件和无法从某些 Win 10 机器查看共享

SAMBA 问题:核心文件和无法从某些 Win 10 机器查看共享

我不久前安装了 Ubuntu 19.10。我想用它作为文件服务器。使用 Gnome GUI,我在名为 UbuntuShare 的文件夹上启用了共享,并单击提示以启用 Samba。我选中了复选框,以便任何人都可以访问共享,并为所有人设置读/写权限。

此事发生了一些奇怪的事情。

  1. 在 UbuntuShare 文件夹中,创建了一个名为 core 的文件。它上面有一个橙色的锁符号和红色的 X 符号。另一个共享文件夹也出现了这种情况。我最终删除了该文件夹以摆脱它,但这个文件夹又出现了这种情况。我在网上搜索过,找不到任何相关信息,所以我不知道这是否正常,但这似乎很奇怪。

  2. 我可以从我的 Windows 10 笔记本电脑上查看和访问 UbuntuShare 文件夹,但前提是我输入计算机名称或 IP 地址。它不会显示在网络共享屏幕上。非常奇怪的是,我还有另外两台台式机,即使我输入了计算机名称或 IP 地址,它们都看不到它。这三台机器都是 Windows 10,我检查了这三台机器上的网络共享设置,它们是一样的。唯一的区别是我的笔记本电脑在办公室的域中,而台式机在标准工作组中。

  3. 我从笔记本电脑创建了几个 Word 文档并将其保存到 Ubuntu 上的 Samba 共享中。当我在 Ubuntu 机器上时,它们上面有一个锁定符号。当我在 GUI 中查看权限时,它说我不拥有这些文件,也无法修改权限。我该如何做才能避免 Windows 机器添加文件时出现此问题?

我担心自己不知怎么搞乱了 Samba。在我意识到 Gnome GUI 有共享方式之前,我按照我找到的一些命令行说明为早期版本的 Ubuntu 安装 Samba。当我意识到 GUI 更简单时,我在 Samba 上执行了 sudo apt purge 来清除我所做的一切,希望这样可以清除它。

我的目标是使共享功能正常工作,以便我可以轻松共享文件以供 Windows 计算机访问。这两台 Windows 10 计算机由我的小学生使用,因此我不想必须进行身份验证才能访问 Samba 服务器。此外,如果核心文件正常,那就没问题。如果不正常,我想修复它。

我将非常感激任何对此提供的帮助。

埃里克

答案1

  • 要检查奇数文件夹的内容并能够将其删除,请使用终端。
  • 在终端窗口中使用命令转到您的文件夹cdcd /home/$USER/UbuntuShare
  • ls -ailh通过命令检查这个奇怪文件的所有者和权限

如果你真的想删除该文件,你可以使用sudo rm -fr /pathto/UbuntuShare/core

但最好通过 来检查一下里面有什么东西sudo cat /home/$USER/UbuntuShare/core

在您的例子中,您共享了一个smb.conf未配置共享的默认文件。要配置它,请在您的末尾添加以下内容/etc/samba/smb.conf

[SambaShare]
   # replace yourusername by your real user's name
   path = /home/yourusername/UbuntuShare
   writable = yes
   guest ok = yes
   guest only = yes
   read only = no
   create mode = 0777
   directory mode = 0777
   force user = nobody

还要确保您的文件夹具有所需的权利和所有权:

sudo chown -R nobody:nogroup /home/$USER/UbuntuShare
sudo chmod -R 0777 /home/$USER/UbuntuShare

然后重新启动samba服务:

sudo systemctl restart smbd nmbd

另外,允许防火墙使用 Samba:

sudo ufw allow samba

更新 1:

在 Windows 10 版本 1511 中,默认情况下禁用对 SMBv1 的支持,因此禁用了 NetBIOS 设备发现。根据实际版本,从版本 1709(“秋季创意者更新”)开始的更高版本的 Windows 不再允许安装 SMBv1 客户端。这导致运行 Samba 的主机不会列在 Explorer 的“网络(邻居)”视图中。虽然没有连接问题并且 Samba 仍可正常运行,但用户可能希望 Windows 自动列出他们的 Samba 主机。

使 Ubuntu 18.04、19.10 上的 samba 正常运行并在 Windows 10 版本 1909 共享网络中可见韋斯代德

使用终端执行下一步:

  • cd ~/
  • sudo apt install git
  • git clone https://github.com/christgau/wsdd
  • cd wsdd
  • sudo cp etc/systemd/wsdd.service /etc/systemd/system/
  • sudo cp src/wsdd.py /usr/bin/wsdd
  • sudo nano /etc/systemd/system/wsdd.service

    改成
    Group=nobodyGroup=nogroup

    添加以上内容ExecStart
    Restart=on-failure
    RestartSec=15

    然后按以下方式退出:Ctrl+ X,然后Y,然后Enter

  • sudo ufw allow 3702 && sudo ufw allow 5357 # 允许 wsdd 流量通过防火墙

  • sudo systemctl enable wsdd.service
  • sudo systemctl start wsdd
  • systemctl status wsdd看看它是否活跃

在此处输入图片描述

如果服务处于活动状态,则删除wsdd文件夹:rm -fr ~/wsdd

另外,如果你不想为这个配置烦恼,并且你的 Ubuntu 机器在 Windows 10 共享网络中的可见性并不重要,那么你可以将你的 UbuntuShare 文件夹拖放到 Windows 文件资源管理器中快速访问项在此处创建其快捷方式。这样您无需输入 Ubuntu 计算机的 IP 地址即可访问它。

更新 2:如果 Windows 10 拒绝连接到您的 Ubuntu 共享,请尝试将 SMB 协议指定为版本 2 或 3:

  • 打开并编辑您的smb.conf文件:sudo nano /etc/samba/smb.conf
  • [global]部分下输入下一个:protocol = SMB3如果你的samba --version是 4。
  • 重启samba服务:sudo systemctl restart smbd nmbd
  • 检查你的 samba 服务是否健康:systemctl status smbd nmbd

答案2

感谢大家的指导和帮助。在发现这不太可能是 Samba 问题后,我今天花了一些时间在 Windows 中寻找可能的原因。

我偶然发现了下面的文章,按照解决方案操作后,两台台式计算机立即就能访问 samba 共享了。

含解决方案的文章:https://superuser.com/questions/1287731/windows-10-can-ping-other-pc-but-cannot-access-shared-folders-what-gives

Microsoft 支持文章解决方案基于:https://support.microsoft.com/en-us/help/4046019

计算机配置\管理模板\网络\Lanman Workstation“启用不安全的来宾登录”

答案3

我现在无法在 Windows 上尝试,但至少在 ubuntu 上可以。这是我从这里我认为值得尝试:

  • 通过复制来备份当前/etc/samba/smb.conf文件:sudo cp /etc/samba/smb.conf /etc/samba/bk.smb.conf
  • 编辑您的/etc/samba/smb.conf

    [global]
        workgroup = WORKGROUP
        server string = %h server (Samba, Ubuntu)
        netbios name = UBUNTU-POWERSPEC
        log file = /var/log/samba/log.%m
        max log size = 10240
        security = user
        map to guest = Bad Password
        getwd cache = yes
        guest account = nobody
        usershare allow guests = Yes
        server signing = auto
        passdb backend = tdbsam
        local master = yes
    
        vfs objects = acl_xattr
        map acl inherit = yes
        store dos attributes = yes
    
        winbind nss info = template
        winbind enum users = Yes
        winbind enum groups = Yes
        winbind use default domain = yes
    
        client use spnego = yes
        client ntlmv2 auth = yes
    
        encrypt passwords = yes
    
        local master = No
        hide dot files = No
        allow insecure wide links = yes
        store dos attributes = yes
    
  • 重启samba服务:

    sudo systemctl restart smbd nmbd
    
  • 检查samba服务状态:

    sudo systemctl status smbd nmbd
    

答案4

跟随这些说明。为了获得最大可用性,请确保服务器上的 SAMBA 帐户用户名(与服务器用户名分开)与您用于访问共享的 Windows 帐户用户名相匹配。

相关内容