上下文(无关):
我在网上和堆栈中搜索这个特定问题,但找不到答案。有些答案甚至建议启用 guest_ok,在我看来,这是一个巨大的安全漏洞,即使在家庭网络中也是如此,虽然我可能是错的,但可能性往往是后者 :)
1. 情况
我有一个闲置的 pi(hole) 3,想为我的所有日常文件提供一个公共的地方。我定期阅读和编辑的文件,如代码、脚本甚至简单的笔记/txt。
我按照指南运用我的 Linux 知识,最终在 pi 插入的 USB 驱动器上建立了一个可正常运行的 Samba 共享,并且可以从我的 LAN 中的任何位置访问。
2. 问题
问题是 sublime 或 codeblocks 等应用程序无法创建文件。我仍然可以使用常规文件资源管理器/thunar 移入和移出文件,尽管在 sublime 中编辑现有文件是可行的,但我每次都必须输入密码。(因此,如果您按 Ctlr+S 20 次,则需要输入相同的密码 20 次)。使用 sudo 启动应用程序会导致“另存为”无法显示 samba 共享,但这更像是一个实验,因为无论如何您都不会以普通用户身份运行 Sublime 等。
3.Samba smb 配置:
[NetworkDrive]
path = /network
browseable = yes
writeable = yes
valid users = pi
public = no
guest ok = no
read only = no
create mask = 0777
directory mask = 0777
编辑:即使将 guest 和 public 设置为 yes,也会导致前面提到的 sublime 等中没有权限错误...
如您所见,我使用 pi 用户的凭据登录,这似乎运行良好,在其他平台上,因为我不想创建另一个额外的用户,并且避免权限麻烦等...,如果 pi 用户存在并且可以正常工作,为什么不呢。
4。结论
我怎样才能让文本编辑器和 IDE 等应用程序像资源管理器一样拥有在共享上创建、编辑和读取的权限?此外,每次 Cntrl+S 的密码请求也必须停止 :(
答案1
编辑:即使将 guest 和 public 设置为 yes,也会导致前面提到的 sublime 等中没有权限错误...
如果您还没有这样做,请确保sudo service smbd restart
在完成所有更改后运行。
无论如何,
您应该force user = pi
在 CONFIG 文件中尝试一下。如果我没记错的话,保存文件时不需要您进行身份验证。至于安全漏洞,只要没有人拥有服务器的本地 IP 地址(因为我认为您不会转发 SAMBA 端口),您就没问题。public = no
处理得很好。
好吧,现在忽略这个。
我安装了 Samba,出现“权限被拒绝”错误的主要原因是共享文件夹不属于尝试编辑它的登录用户。sudo chown pi /network
在你的情况下应该可以正常工作。 使用 重新加载服务sudo service smbd restart
,一切应该可以正常工作。
对 Raspberry Pi 的所有保存内容的验证也应该可以通过此方法解决。
答案2
对于未来的读者,我附上了问题的解决方案。遗憾的是,这没有决定性的解决方案。我可以简单地给你配置,并告诉你我做了什么来解决我的问题:
[Nameofyourshare]
path = /path/to/your/share
browseable = yes
writeable = yes
force user = pi
public = no
<---删除客人确定,默认似乎是肯定的,我不知道。
read only = no
create mask = 0777
directory mask = 0777
我相信针对我的具体情况的真正解决方案是将 cifs mount 命令中的 vers 专门设置为 1.0,奇怪的是,这足以修复我手机上的连接/访问/权限被拒绝错误(测试,1.0 有效,2.0 即使在 smb conf 中强制也无效)。
虽然卸载也可以解决这个问题。我不知道。如果你有同样的问题,我会告诉你,测试你的手机是否可以连接SMB protocol v1 or v2.
如果只有 v1 工作而没有身份验证或连接/权限问题,则使用命令:sudo mount -t cifs -o vers=1.0,username=pi //xxx.xxx.xxx.xxx/NetworkDrive/ /mnt/
<--- 'x' 代表共享/设备的 ip,用户名代表来自 .conf 的强制用户的用户名和要挂载的 /mnt。
至于@Nirbodha,我感谢您的帮助,如果我有> = 15 个回复,我会对您的回复点赞。遗憾的是,我不能将您的回复选为最终解决方案,尽管它是解决方案的一部分。我真的认为协议版本(&可能重新安装)是问题所在。