尝试 SAMBA 共享文件夹总是出错

尝试 SAMBA 共享文件夹总是出错

我一直在试图弄清楚为什么每次都会发生此问题。我尝试寻找此问题的解决方案,但一无所获。您能帮助我识别并修复错误吗:

我的问题最初是尝试使用 Samba Shares 共享时出现的。我正在使用 Ubuntu live USB 启动一台旧的 Levovo 笔记本电脑 (E420)。笔记本电脑启动正常,它已连接到互联网(我从笔记本电脑上发布这个问题)。笔记本电脑通过以太网电缆连接到我的 LAN。我试图在网络上共享笔记本电脑的本地硬盘,以便将所有文件从笔记本电脑传输到另一台设备。但是,当我在 fIles 中安装本地硬盘然后尝试共享它(右键单击 -> 网络共享)时,我收到以下错误。我该如何修复它并在网络上共享文件夹?

分享错误截图

我看到两个错误:

  1. 尝试创建一个 log.net 文件,但用户似乎没有权限。我不确定这是为什么。我甚至用 log.net 创建了一个空文件,并向所有人授予了所有权限(即 chmod 777)
  2. 错误提示我在共享名称中使用了无效字符。但事实并非如此。我甚至尝试了不同的“名称”,但此错误仍然存​​在。

为了参考,错误文本也粘贴在下面:

‘net usershare’ 返回错误 255:[2023/04/05 09:28:20, 0] ../../lib/util/debug.c:1100(reopen_one_log) opening_one_log:无法打开新的日志文件‘AJ/log.net’:没有此文件或目录 net usershare add:共享名 /media/ubuntu/e42804db2804af1c/aj 包含无效字符(%<>*?|/+=;:", 中的任何一个)

答案1

嘿,我在使用 Nautilus 中的图形界面时遇到了同样的问题,结果发现这是 nautilus-share 中的一个错误https://bugs.launchpad.net/ubuntu/+source/nautilus-share/+bug/1967245

我理解问题在于使用-lnautilus 扩展调用的参数来设置要共享的文件夹,使用--long参数可以正常工作。因此,您可以从终端执行此操作:

net usershare add --long share <full_path> "comment" "Everyone:R" guest_ok=n

(将 R 改为 F 以获得读写权限)请注意,设置方式如下,您仍然需要创建用户并传递权限才能访问 samba 服务器: sudo smbpasswd -a <some_user_name> 并重新启动服务: sudo systemctl restart smbd

原始来源是: https://forum.manjaro.org/t/samba-nautilus-share-funktioniert-nicht-mehr/85428/20

答案2

您的日志文件路径和共享名称有问题,下面介绍如何修复该问题,首先我们在此处修复日志文件路径,打开此文件,/etc/samba/smb.conf然后搜索以 开头的行log file并将其更改为 ,log file = /var/log/samba/log.%m然后检查系统为日志文件指定的路径是否存在并具有适当的权限

sudo mkdir -p /var/log/samba
sudo chown root:adm /var/log/samba
sudo chmod 750 /var/log/samba

对于共享名称,它不应该包含任何这些字符% < > * ? | / + = ; : , ",并且只需/使用/media/ubuntu/e42804db2804af1c/aj类似的ajtest如果是临时的,则正确重新启动它就可以工作。sudo systemctl restart smbd nmbd

编辑:根据您的评论,问题可能与 GUI 创建共享名称的方式有关,您可以执行以下操作,首先检查权限,例如/media/ubuntu/e42804db2804af1c/aj我们执行的操作(将您的用户名替换为您的用户名)

sudo chown -R your_username:your_username /media/ubuntu/e42804db2804af1c/aj
sudo chmod -R 755 /media/ubuntu/e42804db2804af1c/aj

然后/etc/samba/smb.conf添加这些(用你的用户名和路径替换你的用户名和路径)

[aj]
   path = /media/ubuntu/e42804db2804af1c/aj
   browseable = yes
   read only = no
   guest ok = yes
   create mask = 0644
   directory mask = 0755
   force user = your_username

保存并重启sudo systemctl restart smbd nmbd

答案3

请参阅以下安装指南。它可以有效解决“net usershare”返回错误255的突出问题......“

安装和配置 Samba

0.删除之前安装的 samba

$ sudo apt-get purge samba samba-common
$ cd /home/username/Documents
$ sudo rm -rf share

1.安装samba

$ sudo apt update
$ sudo apt install samba samba-common 

2.检查版本和路径

1).检查版本

$ samba -V

版本 4.15.13-Ubuntu

2).安装路径

$ whereis samba

3.创建共享并授权共享

1).显示用户的用户名(不是主机名)

$ whoami

该命令提醒用户输入正确的名称以进行下一步操作。

2).创建共享并授权

$ sudo mkdir /home/username/Documents/share 
$ sudo chmod 777 /home/username/Documents/share

4.在smb.conf中写入以下几行

1).打开smb.conf

$ sudo gedit /etc/samba/smb.conf

2).在smb.conf中写入命令行

[share]
    comment = Samba on Ubuntu
    path = /home/username/Documents/share
    read only = no
    browsable = yes
    available = yes
    writable = yes
    public = yes

上述命令使其他操作系统(如 Mac 或 Windows)可以访问 Ubuntu 20.04。请注意,最后三个命令对于启用 Mac OS 或 Windows 可见的 Samba 至关重要。

3).保存smb.conf

4).关闭smb.conf

5.重启Samba

$ sudo service smbd restart

6.更新防火墙规则以允许 Samba 流量

$ sudo ufw allow samba

7.设置用户账户

请记下用户名和主机名(或计算机名)(用户名@主机名)

$ whoami

再次显示您的用户名以便输入错误的名称(例如主机名)

$ sudo smbpasswd -a username

8.连接共享

请前往左侧的文件(Ubuntu 20.04)

1).打开新窗口 2).点击其他位置 3).点击分享 4).输入两次密码进行确认

9.Write 保存示例文档

编写示例文本并将其保存到共享中

或者

将现有文本复制到共享中

10.设置Mac OS

1).转到 Finder

2).开放网络

用户可以看到上面书写或保存的示例文本。

笔记:

  1. 用户可以使用 ifconfig 命令获取 your_ip_addres,然后输入 samba://your_ip_address 来连接服务器(Ubuntu)。但方法略显复杂。

相关内容