Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。
安装Samba服务
yum -y install samba
Samba主配置文件
vim /etc/samba/smb.conf
Samba配置文件参数
[global] #全局参数。
workgroup = MYGROUP #工作组名称
server string = Samba Server Version %v #服务器介绍信息,参数%v为显示SMB版本号
log file = /var/log/samba/log.%m #定义日志文件的存放位置与名称,参数%m为来访的主机名
max log size = 50 # 定义日志文件的最大容量为50KB
security = user #安全验证的方式,总共有4种
#share:来访主机无需验证口令;比较方便,但安全性很差
#user:需验证来访主机提供的口令后才可以访问;提升了安全性
#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
#domain:使用域控制器进行身份验证
passdb backend = tdbsam #定义用户后台的类型,共有3种
#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
#ldapsam:基于LDAP服务进行账户验证
load printers = yes #设置在Samba服务启动时是否共享打印机设备
cups options = raw #打印机的选项
[homes] #共享参数
comment = Home Directories #描述信息
browseable = no #指定共享信息是否在“网上邻居”中可见
writable = yes #定义是否可以执行写入操作,与“read only”相反
[printers] #打印机共享参数
comment = All Printers
path = /var/spool/samba #共享文件的实际路径(重要)。
browseable = no
guest ok = no #是否所有人可见,等同于"public"参数。
writable = no
printable = yes
Samba服务器搭建
1:创建用于访问共享资源的账户信息
pdbedit命令用于管理SMB服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了
pdbedit命令参数如下
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表
设置共享账号
useradd test #创建用户
pdbedit -a -u test #设置samba用户的密码
[需要密码两次输入]
2:创建共享资源目录
mkdir /home/database
chown -Rf test:test /home/database
[建议:防火墙相关的配置]
emanage fcontext -a -t samba_share_t /home/database #设置selinux策略
restorecon -Rv /home/database
getsebool -a | grep samba #设置linux域策略
setsebool -P samba_enable_home_dirs on
3:修改Samba服务主配置文件
vim /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[database] #共享名称
comment = Do not arbitrarily modify the database file #警告信息
path = /home/database #共享目录路径
public = no #关闭所有人可见
writable = yes #允许写入操作
4:启动服务
systemctl restart smb
systemctl enable smb
5:Windows测试
\\172.16.238.128
用户 test
密码 123
#如果输入的密码正确,依旧报错,windows系统有缓存,需要重启系统
6:Linux测试
yum install cifs-utils #安装支持共享文件服务的软件包
在Linux客户端,Samba服务的用户名、密码、共享域的顺序将相关信息写入到一个认证文件中。
vim auth.smb
username=test
password=123
domain=MYGROUP
chmod -Rf 600 auth.smb #设置权限
在Linux客户端上创建一个用于挂载Samba服务共享资源的目录,并把挂载信息写入到/etc/fstab文件中.保证重启依然生效.
mkdir /database
//172.16.238.128/database /database cifs credentials=/root/auth.smb 0 0
vim /etc/fstab