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

AJ.*_*AJ. 5 permissions sharing mount samba networking

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

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

分享错误截图

我可以看到两个错误:

  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)reopen_one_log:无法打开新的日志文件“AJ” /log.net': 没有这样的文件或目录 net usershare add: 共享名 /media/ubuntu/e42804db2804af1c/aj 包含无效字符(任何 %<>*?|/+=;:",)

jac*_*ess 3

嘿,我在 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
Run Code Online (Sandbox Code Playgroud)

(将 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


Sax*_*owl 1

您的日志文件路径和共享名有问题,以下是解决方法,首先我们在此处修复日志文件路径,打开此文件,/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
Run Code Online (Sandbox Code Playgroud)

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

编辑:根据您的评论,问题可能与 GUI 创建共享名的方式有关,在这里您可以做什么,首先检查权限,例如/media/ubuntu/e42804db2804af1c/aj我们所做的(将 your_username 替换为您的)

sudo chown -R your_username:your_username /media/ubuntu/e42804db2804af1c/aj
sudo chmod -R 755 /media/ubuntu/e42804db2804af1c/aj
Run Code Online (Sandbox Code Playgroud)

然后/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
Run Code Online (Sandbox Code Playgroud)

保存并重新启动sudo systemctl restart smbd nmbd