参考:https://wpguru.co.uk/2021/01/linux-windows-samba/
一、概述
为了便于直接操作Linux系统服务器内的文件,最简单的方法就是通过Samba协议来挂载网络磁盘
本质上,这是把Linux系统的一部分声明为Samba共享,在Samba中设置凭证,然后让其他系统的用户访问这些文件。
看起来有点复杂,一波操作后就理解了
二、安装Samba
首先执行安装命令:
sudo apt install samba
也有可能是下面的命令:
sudo yum install samba
sudo apt-get install samba
sudp pacman -S samba
设置开机自启
systemctl enable smb
systemctl start smb
也可能是:
service smbd restart
三、设置Samba凭证
Samba也需要设置用户密码,该密码和系统登陆密码不同,但要引用系统中的用户名,此时假设Linux系统中有我的常用用户Striver
,我们可以设置如下:
smbpasswd -a Striver
如果不出意外,应该需要输入两次密码。
你也可以在不指定用户的情况下运行与系统用户相同的命令,man smbpasswd
查看详细内容。一旦确认,当前(或指定)的系统用户将被添加到Samba用户组中。
四、设置共享文件夹
我们需要设置希望共享的文件夹,其位置可以是文件系统的任意地方,甚至是被挂在/mnt的外置目录,这里需要定义其完整路径,编辑/etc/samba/smb.conf
,将以下内容添加到文件底部
# My Samba Share
[strivershare]
path = /home/Striver/Desktop/supershare # 共享目录
available = yes
valid users = shareuser # 用户名
read only = no
browsable = yes
public = yes
writable = yes
这里笔者将自己的共享命名为strivershare
,这个名称是可以任意自定的,主要用于区别不同目录
以及不同用户
分级
用户即为前面说的Samba用户,目录前面提到过,只要有权限,也是任意的
五、设置Samba协议
经过上述配置,macOS和其他Linux系统已经可以访问共享文件夹了,但是Windows10访问会出错,因为处于安全原因,Windows不再支持SMBv1协议,可能和以前的WannaCrypt/WannaCry
漏洞有关,感兴趣的童鞋可以百度
故为了安全起见,我们使用SMBv2即可,根据你的Linux(Samba)版本,你可以使用3或4
在你的Samba配置文件中找到[global]
部分,并将以下内容添加到下一个块之前的最后一行(其他行保持不变)。
############ SMB Version ############
# use SMBv2
min protocol = SMB2
max protocol = SMB2
client min protocol = SMB2
client max protocol = SMB2
对配置文件进行更改后,我们需要重新启动Samba服务
systemctl restart smb
也可能是:
service smbd restart
六、防火墙和SELinux
默认情况下,Samba连接会被防火墙服务屏蔽。我们可以通过添加以下规则来解决该问题。
firewall-cmd --add-service samba --permanent
systemctl restart firewalld
如果在系统上启用了SELinux,可以选择性地添加以下值,以允许Samba服务的写访问(如果禁用SELinux或允许SELinux,则不需要)
setsebool smbd_anon_write=1
七、从Windows 10访问文件
资源管理器 -> 添加一个网络位置 -> 选择自定义网络位置 -> 输入地址\\[ip地址]\strivershare
-> 设置名称 -> 完成
当然也可以进行驱动器映射,建议自行尝试