此Samba文件共享服务器是在CentOS 7上搭建,用于Linux与Windows之间的共享。
1.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.安装samba服务
yum -y install samba samba-common samba-client
##启动服务
systemctl start smb
systemctl enable smb
3.查看服务端口监控情况
$ netstat -lantp | grep 139
##出现以下结果为正常
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 1061179/smbd
tcp6 0 0 :::139 :::* LISTEN 1061179/smbd
#通过smbclient命令查看服务共享状态,输入root密码看到当前服务正在运行
$ smbclient -L localhost
Enter SAMBA\root's password:
Anonymous login successful
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Samba 4.10.16)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful
Server Comment
--------- -------
Workgroup Master
--------- -------
4.创建共享目录、用户
## 创建共享目录
mkdir /var/share /var/smb
chmod 777 /var/share /var/smb
## 创建samba用户
useradd -s /sbin/nologin -M smb # nologin表示用户不需要登录权限
smbpasswd -a smb # 设置用户密码
5.配置samba服务
5.1添加Samba公共共享配置
vim /etc/samba/smb.conf
# 在global添加如下内容
[global]
workgroup = SAMBA
security = user
map to guest = Bad User #新增此行
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
# 添加公共share目录,允许匿名访问目录。
[share]
comment = share
path = /var/share
guest ok = yes
writeable = yes
browseable = yes
#配置完成后保存退出,然后重启Samba服务。
systemctl restart smb
使用Windows电脑访问Samba服务器。在计算机上打开任意文件,输入共享路径\\ip (linux的ip)的方式访问文件共享服务。
进入该文件目录,新建一个文本文档,可以正常创建,公共文件共享目录设置成功
5.2添加用户共享配置
# 在samba系统中,用户共享目录smb的属主。
chown smb:smb /var/smb
#编辑Samba配置文件/var/samba/smb.conf,添加用户共享配置,保存并退出编辑
vim /etc/samba/smb.conf
[smb]
comment = smb
path = /var/smb
write list = smb
browseable = yes
writeable = yes
read list = smb
valid users = smb
create mask = 0777
directory mask = 0777
# 配置完成后保存退出,然后重启Samba服务。
systemctl restart smb
在电脑上,访问路径\\ip\,将出现smb目录。
尝试点击smb访问该目录,需要输入认证信息,输入在步骤4中创建的用户及密码。登录该共享目录。
正确输入认证信息后,可以正常访问,可打开该目录。
在文件目录中创建一个文件夹和文件,可以成功创建,用户共享文件服务器设置成功。
6.补充知识
6.1 Samba配置文件
Samba配置文件目录存放于/etc/samba,几个主要的配置文件有smb.conf、Imhost和smbpasswd
Ø smb.conf:这个是SAMBA 最主要的配置文件。在较为简单的设定当中,这也是唯一的一个配置文件。该配置文件主要的设定分为两部份,分别为:
[global] 这个设定主机功能的项目
[sharedir] 每个分享出去的目录的属性设定
Ø lmhosts:该配置的主要目的在对应NetBIOS name 与该主机名称的 IP。由于目前SAMBA 的功能越来越强大,所以通常只要一启动 SAMBA 时,它就能自己获取 LAN里面的相关计算机的 NetBIOS name 对应 IP 的信息,因此该配置通常可以不用设定。
Ø smbpasswd:是SAMBA 存放使用者密码对应表文件。当设定的 SAMBA 服务器需要使用者输入账号与密码后才能登入的状态时,使用者的密码存放于该文件。
6.2 smb.conf配置文件详解
[global] #设置Samba服务器的整体环境
workgroup = MYGROUP #指定工作组名称
server string = Samba Server Version #指定主机注释说明
netbios name = MYSERVER #指定Samba默认主机名
hosts allow = 127.192.168.12. 192.168.13. #允许访问samba服务器IP地址范围,默认允许所有的IP访问
security = user #设置安全等级,user模式需用户验证,share模式无需验证。
[homes]
valid users = #指定允许访问用户
invalid users = #指定不允许访问用户
write list = #指定写入用户
read list = #设置只读用户
public = yes #是否可以匿名访问