1. 安装Samba
$ yum install samba samba-client samba-common
2. 启动Samba服务
- 查看Samba服务运行状态
$ systemctl status smb.service
此时Samba状态显示为"disable",接下来我们启动Samba服务。
- 启动Samba
$ systemctl start smb.service
- 设置开机启动Samba
$ systemctl enable smb.service
再次用命令查看Samba服务状态,应该显示为"running"了,但是现在还不能马上使用Samba共享文件,在此之前还需要进行一些设置,具体看下文详细描述。
3. 开放指定端口或者关闭防火墙
Centos7.3默认开启了防火墙,如果要访问Samba服务器,必须开放指定端口或者关闭防火墙,使用哪种方式取决于网络环境:如果仅仅是内网使用,则可以简单粗暴地关闭防火墙;如果服务器还连接了外网,建议还是开放Samba服务所需的指定端口。下面是这两种方式的详细命令:
3.1 关闭防火墙
$ systemctl stop firwwalld.service
$ systemctl disable firwwalld.service
3.2 开放Samba服务端口
- 将Samba服务的端口加入防火墙“白名单”
$ firewall-cmd --permanent --add-service=samba
$ firewall-cmd --reload
- 查看防火墙“白名单”列表,确认Samba服务已被添加
$ firewall-cmd --list-services
4. 关闭SELinux
很多人发现在Centos7.3上搞定一切Samba所需配置后,还是无法访问Samba共享文件夹,罪魁祸首就是SELinux了!
SELinux是NASA搞出来的玩意,对权限管理极为严格,而配置又极其复杂,对大多数人而言都是鸡肋,索性禁用了之,下面给出了具体步骤:
- 关闭SELinux
setenforce 0
- 禁止SElinux开机启动
修改配置文件/etc/selinux/config
,将SELINUX值改为disabled
...
#SELINUX=enforcing
SELINUX=disabled
...
5. 为Samba服务添加用户
注意,用户名必须存在于系统用户列表中!
可以使用之前已经存在的用户;为了方便权限管理,也可以新建一个“smb”用户。这里我们以root用户为例:
$ smbpasswd -a root
执行上述命令后,按照提示输入密码(可以不和系统密码相同),设置完成后,这组用户名与密码就是我们访问Samba服务时要输入的登录信息。
6. 修改Samba配置文件
Samba服务的配置文件路径为:/etc/samba/smb.conf
,我们需要在这个文件中修改相关配置来设置共享文件夹。例如要共享/mnt目录,则在文件末尾增加如下配置:
...
[my share]
#共享文件夹路径
path = /mnt
#网络上是否可见
browseable = yes
#写入权限控制
writable = yes
#是否支持宾客访问模式
guest ok = yes
修改完成后,可以运行如下命令测试是否配置正确:
$ testparm
如果有报错信息,说明配置文件有些地方配置错误了,需要返回修改,否则Samba服务无法运行。
确认配置无误后,重启Samba服务以使修改过的配置生效:
$ systemctl restart smb.service
7. 访问Samba共享文件夹
7.1 从Windows访问Samba
在文件管理器的地址栏或“运行”窗口输入IP地址,即可访问Samba共享文件夹,输入格式为:双斜杠+IP地址,举例如下:
\\192.168.0.101
7.2 从Linux访问Samba
- UI界面
以Ubuntu为例,在文件资源管理器中侧栏选择“Connect to Server”输入:
smb://192.168.2.106
- 命令行
将Samba共享文件夹挂载至本地:
$ mount -t cifs -o username=root,password=123456 //192.168.0.101 /mnt/