我一直在努力让 Linux 中的共享 Samba 共享可从 Windows 10/11 写入。我找到了几个关于此的问题,但找不到解决方案。我可以毫无问题地查看和列出 Samba 共享,只是无法创建或写入文件。在 2 台不同的 Windows 机器上进行了测试。
几年前我确实使用过这个设置,如果我没记错的话,我必须在 Windows 中安装附加功能,并在 smb.conf 中进行一些调整,但不确定那些是什么。我尝试使用和安装 HDD ntfs-3g
,cifs
使用和uid
为gid
我为 samba 共享创建的用户安装网络用户,包括force user = netuser
,设置fmask=000
,,dmask=000
和rw
,都没有运气。
我注意到一件事,当我从 Windows 查看权限时,它显示所有者为网络用户,每个人只有特殊权限,而查看高级权限则显示具有完全控制权限的访问权限。
我当前的 fstab
/dev/sda1 /mnt/sda1 ntfs-3g x-gvfs-show,dmask=000,fmask=000,rw,uid=1001,gid=1001 0 0
Samba 配置
[PublicFiles]
path = /mnt/sda1/Public
guest ok = yes
browseable = yes
read only = no
writable = yes
create mask = 0777
directory mask = 0777
我意识到这个设置不安全(仅测试),一旦我找到问题,我就可以重新收紧。我没有添加任何 Windows 功能,是否需要检查以启用写入权限?
我知道已经发生了很多变化,尤其是近年来,Samba 仍然是设置它的方法吗?我见过 NFS 被广泛使用,但我对它并不熟悉。我认为 Samba 是完成此设置的最简单方法,因为它仅用于内部文件共享/组织。如果需要,我愿意尝试其他方法来实现这一点。
答案1
我使用的有两种方法:
(1)在 Linux 中:\\192.168.xy\folder,其中这是 Windows 计算机的 IP
(2)在 Windows 中: 在 Linux 上实现 Samba。
按照此教程操作
- 安装 Samba
在 Linux 机器上,安装 Samba 。
sudo apt update
sudo apt install samba
使用 whereis samba 来验证安装。
- 设置 Samba 。
创建一个要共享的目录: mkdir /home//sambashare 。
编辑 smb.conf 文件:sudo nano /etc/samba/smb.conf 。
在文件底部添加以下行:
[sambashare}
comment = Samba on Ubuntu
path = /home/<username>/sambashare
read only = no
browsable = yes
Ctrl-O 保存,Ctrl-X 退出编辑器。
重新启动 samba 服务: sudo service smd restart 。
如有必要,更新防火墙规则:sudo ufw allow samba 。
设置用户帐户并连接共享
sudo smbpasswd -a 和密码
(用户名必须属于系统账户,否则将不起作用)
在 Linux 中:
smb://Linux 的 ip 地址/sambashare