Samba简介
SAMBA是⼀个实现不同操作系统之间⽂件共享和打印机共享的⼀种SMB协议的免费软件, SMB(Server Message block)协议是window下所使⽤的⽂件共享协议,我们在linux系统或 者其类unix系统当中可以通过samba服务来实现SMB功能。
(1)在⽹络上共享⽬录,决定访问权限;
(2)在⽹络上共享打印机,决定访问权限;
(3) 加⼊⼀个windows域环境 ;
(4)通过windows域环境进⾏认证操作。这个相⽐于NFS是安 全的。NFS缺乏认证机制,在局域⽹当中没有得到更安全的保障
Samba服务是由两个进程组成,分别是nmbd和smbd
nmbd:其功能是进⾏NetBIOS名解析,并提供浏览服务显示⽹络上的共享资源列表。
smbd:其主要功能就是⽤来管理Samba服务器上的共享⽬录、打印机等,主要是针对⽹络 上的共享资源进⾏管理的服务。当要访问服务器时,要查找共享⽂件,这时我们就要依靠 smbd这个进程来管理数据传输
samba软件结构
/etc/samba/smb.conf //samba服务的主要配置⽂件
/etc/samba/lmhosts //samba服务的域名设定,主要设置IP地址对应的域名, 类似linux系统的/etc/hosts
/var/log/samba //samab服务存放⽇志⽂件
/var/lib/samba/private/{passdb.tdb,secrets.tdb} //存放samba的⽤ 户账号和密码数据库⽂档
环境
Redhat 9
基础仓库以搭建完成 参考:搭建本地YUM仓库-CSDN博客
步骤:
机器更名
[root@admin ~]# hostnamectl set-hostname samba
[root@admin ~]# bash
[root@samba ~]#
安装samba软件包
[root@samba ~]# yum -y install samba
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。AppStream 3.1 MB/s | 3.2 kB 00:00
BaseOS 2.7 MB/s | 2.7 kB 00:00
依赖关系解决。省略。。。。。。。已更新安装的产品。已安装:libnetapi-4.17.5-102.el9.x86_64 samba-4.17.5-102.el9.x86_64 samba-common-tools-4.17.5-102.el9.x86_64 samba-dcerpc-4.17.5-102.el9.x86_64 samba-ldb-ldap-modules-4.17.5-102.el9.x86_64 samba-libs-4.17.5-102.el9.x86_64 完毕!
[root@samba ~]#
samba服务器最主要的配置文件其实只有一个,就是/etc/samba/samba.conf,这个配置文件可以分为两个部分,一个部分是全局参数,一部分是共享资源相关参数。
全局参数
[global]#与主机名相关的设置workgroup = zkhouse //工作组名称netbios name = zkserver //主机名称,跟hostname不是一个概念,在同一个组中,netbios name必须唯一serverstring = this is a test samba server //说明性文字,内容无关紧要#与登录文件有关的设置log file = /var/log/samba/log.%m //日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostnamemax log size = 50 //日志文件最大的大小为50Kb#与密码相关的设置security = share //表示不需要密码,可设置的值为share、user和serverpassdb backend = tdbsam#打印机加载方式load printer = no //不加载打印机⽤户控制:public = 匿名⽤户访问,需要下⾯的指令配合map to guest = Bad User 匿名访问browseable = 可浏览valid users = 有效⽤户writable = yes 可写,还要看⽬录权限writable list = maomao,@GROUPNAME,+GROUPNAMEreadonly = yes 只读设置create mask = 0744 客户机创建⽂件权限directory mask = 0744 客户机创建⽬录的权限
访问控制 max connections = 最⼤连接数⽬deadtime = 断掉连接时间(分钟,0为不限制)hosts allow = 允许主机hosts deny = 拒绝主机
启动samba 创建一个共享目录添加一个文件
[root@samba ~]# systemctl start smb.service
[root@samba ~]#
[root@samba ~]# mkdir /gongxiang
[root@samba ~]# cd /
[root@samba /]# ls
afs bin boot dev etc gongxiang home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@samba /]#
[root@samba /]# cd gongxiang/
[root@samba gongxiang]# ls
[root@samba gongxiang]# vim abc.txt
[root@samba gongxiang]# cat abc.txt
isadj
[root@samba gongxiang]#
修改SAMBA配置文件增加参数
[root@samba gongxiang]# vim /etc/samba/smb.conf
[root@samba gongxiang]# 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.
#
# Note:
# SMB1 is disabled by default. This means clients without support for SMB2 or
# SMB3 are no longer able to connect to smbd (by default).[global]workgroup = SAMBAsecurity = 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[public] //共享资源名称comment = test //随意的解释path = /gongxiang //实际共享的目录writable = yes //是否可以写入 guest ok = yes //可以让用户随意登录browseable = yes //可以被所有用户浏览到资源名称
[root@samba gongxiang]#
创建一个用户登录
[root@samba /]# useradd sm
[root@samba ~]# smbpasswd -a sm //增加用户并赋予登录密码
New SMB password:
Retype new SMB password:
Added user sm.
[root@samba ~]#
关闭防火墙和selinux 重启samba服务
[root@samba gongxiang]# systemctl restart smb.service
[root@samba gongxiang]#
[root@samba gongxiang]# setenforce 0
[root@samba gongxiang]# systemctl stop firewalld.service
[root@samba gongxiang]#
回到windows进行登录测试
弹出登录窗口输入用户名密码登录
查看创建的abc.txt文件
root@samba /]# cat /gongxiang/abc.txt
isadj
[root@samba /]#
创建新文件发现没有权限 回到Linux查看权限
[root@samba /]# ll
总用量 32drwxr-xr-x. 2 root root 21 4月 5 13:14 gongxiang
修改权限
[root@samba /]# chmod a+rwx /gongxiang/
[root@samba /]# ll
drwxrwxrwx. 2 root root 21 4月 5 13:14 gongxiang
回到windows窗口增加文件测试
删除文件