在centos上搭建smb服务
一、前言
家庭服务器的首选功能就是配置文件共享功能,此功能由smb服务实现。
smb是微软自主研发的,用于在Windows间文件共享的协议。我们在Linux服务器上搭建此服务,可将服务器作为文件存储的介质,并实现网络之间的共享。
二、安装smb服务
yum install samba samba-client
安装samba服务端和控制端
三、配置smb服务
1、创建smb账号
smb账号和系统账号相互独立,但smb账号依赖于系统账号。
首先我们先来创建一个系统账号并创建密码
useradd hanran
passwd hanran
#输入密码并重复
然后我们使用smb账户管理工具添加一个smb账号
smbpasswd -a hanran
#输入密码并确认
需要注意的是,smb账号必须要建立在已有的系统账号中。否则就会报错。
2、编辑配置文件
smb的配置文件在/etc/samba/smb.conf中
我们使用vim编辑器进行编辑
vim /etc/samba/smb.conf
我们新建一个代码块
[hanran_files]
path = /home/hanran/files
browseable = yes
writable = yes
valid users = hanran
available = yes
create mode = 0664
directory mode = 0775
其中中括号为共享的文件夹名称;
path为共享文件夹的路径;
browseable表示文件夹是否可见;
若不可见,则无法通过输入IP地址直接发现此共享文件夹;
writable从smb层控制账户的可写权限;
最后两行分别声明了创建的文件和文件夹的权限。
我们再编辑一下全局配置。
其中passdb backend表示密码的数据库方式。
在centos的默认配置中使用tdbsam。
该方式使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库 可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。
此方式不符合我个人的使用习惯,当Windows客户端登录时,此方式的操作用户为与服务器系统用户相同组的一个用户、我们将它改成smbpasswd,这样我们的操作用户就是系统用户本身了。
保存并退出。
systemctl enable smb
systemctl start smb
设置自启动并生效smb服务。
三、关闭selinux和防火墙
selinux是一种保护Linux系统的软件,它不允许网络上的计算机更改本服务器中的系统资源。
所以我们将selinux关闭。
1、查看selinux状态
2、编辑selinux配置文件
vim /etc/selinux/config
我们将selinux参数设置为0
这表示一切行为不会被阻止,但会被记录在日志中,即“permissive”模式。
3、配置centos防火墙
systemctl stop firewalld
systemctl disable firewalld
或者也可以放行相应端口
smb端口为137、138、139、445,我们将其放行。
firewall-cmd --zone=public --add-port=137/tcp --permanent
firewall-cmd --zone=public --add-port=138/tcp --permanent
firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
四、大功告成!
在Windows上的文件资源管理器中键入IP地址即可访问资源。
用户名和密码为我们刚才所设置的参数。
一切大功告成!