1.了解samba的配置文件
2.熟悉samba服务的实例
以前我们在windows上共享文件的话,只需右击要共享的文件夹,然后选择共享相关的选项设置即可,然后如何实现windows和linux的文件共享呢,这就涉及到了samba服务,这个软件配置起来也不难,使用也非常简单
samba配置文件是smb.conf
安装系统的时候大多会默认安装samba,如果没有安装,在Centos上,只需要运行这个命令即可安装:yum install -y samba-client
进入目录查看文件
Samba的配置文件为/etc/samba/smb.conf,通过修改配置文件来完成我们的各种需求,打开这个配置文件,你会发现很多内容都用#或;注释掉了,先看一下未被注释的部分
主要有以上三部门,【global】【homes】【printers】
global:定义全局的配置,
workgroup: #用来定义工作组,一般我们需要把这个SAMBA改为WORKGROUPsecurity=user #这里指定samba的安全等级,关于安全等级有四种
share:#用户不需要账户及密码即可登录samba服务器
user:#由提供服务的samba服务器负责检查账户及密码
server:#检查账户及密码的工作由另一台windows或samba服务负责
domain:#指定windows域控制服务器来验证用户的账户及密码passdb backend=tdbsam #passdb backend(用户后台,samba有三种用户后台:
smbpasswd,tdbsam,ldapsamsmbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或虚拟用户)设置一个samba密码tdbsam:使用数据库文件创建用户数据库,数据库文件叫passwdb.tdb 在/etc/samba中
passdb.tdb用户数据库可以使用smbpasswd -a 创建samba用户,要创建的samba用户必须先是系统用户
也可以使用pdbedit创建samba用户,pdbedit参数很多,列出几个主要的:
pdbedit -a username:新建samba用户
pdbedit -x username:删除samba用户
pdbedit -L :列出samba用户列表,读取passwdb.tdb数据库文件
pdbedit -Lv:列出samba详细列表
pdbedit -c "[D]" -u username:暂停该samba用户账号
pdbedit -c "[]" -u username:恢复该samba用户账号ldapsam:基于LDAP账户管理方式验证用户,首先要建立LDAP服务,设置"passdb backend=ldapsam:ldap://LDAP Server"load printers和cups options两个参数用来设置打印机相关netbios name=MYserver #设置出现在网络邻居的主机名
hosts allow=127. 192.168.12. 192.168.13. #设置子网127. 192.168.12. 192.168.13.的网段访问smb服务
log file=/var/log/samba/$m.log #定义samba日志,这里的%m是上面的netbios name
max log size=50 #指定日志的最大容量[homes]该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单独的文件共享的环境来说,这里可以注释
[printers]该部分设置打印机共享
1.使用User来搭建smb服务
1.先关闭防火墙和selinux
2.配置如下
[root@localhost samba]# useradd -M test1 //创建用户test1,不要家目录
[root@localhost samba]# smbpasswd -a test1 //设置test1的smbpasswd密码
New SMB password:
Retype new SMB password:
Added user test1.
[root@localhost samba]# echo 'test1 =hello'>/etc/samba/smbusers //系统中的test1映射为hello
[root@localhost samba]# cat /etc/samba/smbusers
test1 =hello
[root@localhost /]# mkdir share
[root@localhost /]# ls
bin dev home lib64 mnt proc run share sys usr
boot etc lib media opt root sbin srv tmp var
[root@localhost /]# cd share/
[root@localhost share]# mkdir smbshare
[root@localhost share]# chown test1.test1 smbshare/ //修改属性,smbshare属主属组都为test1[global]workgroup = WORKGROUP #工作组security = user #安全模式username map=/etc/samba/smbusers #解析名字的文件位置printing = cupsprintcap name = cupsload printers = yescups options = raw
[test1]path=/share/smbshare #共享文件的路径write list=hello #指定可以写入的用户read only=No #不仅只读,可读可写browseable=yes #可查看共享文件 //默认就是yes,可见的guest ok =yes #所有人均可访问共享目录 和下一条一样public =yes #允许匿名用户访问[homes]comment = Home Directoriesvalid users = %S, %D%w%Sbrowseable = Noread only = Noinherit acls = Yes
以下配置也是可以读可以写可以删除
[root@localhost /]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.[global]workgroup = WORKGROUPsecurity = userpassdb backend = tdbsamprinting = cupsprintcap name = cupsload printers = yescups options = raw[homes]comment = Home Directoriesvalid users = %S, %D%w%Sbrowseable = Noread only = Noinherit acls = Yes[printers]comment = All Printerspath = /var/tmpprintable = Yescreate mask = 0600browseable = No[print$]comment = Printer Driverspath = /var/lib/samba/driverswrite list = @printadmin rootforce group = @printadmincreate mask = 0664directory mask = 0775
[share1]path=/share/smbsharewritable=yespublic=nobrowseable=yes
最后要记得开启smb服务
systemctl start smb
3.windows测试
1.在控制面板开启smb和tcp/ip协议
测试,还需要打开网络共享中心启用
之后可以进行复制粘贴等操作