网络服务-SAMBA

网络服务-SAMBASMB ServerMessag 信息服务块 是一种在局域网上共享文件和打印机的一种通信协议 它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务 samba

大家好,欢迎来到IT知识分享网。

目录

一、Samba概述

1.ftp的优缺点

2.Samba的特性

3.smb协议和cifs之间的关系

二、Samba服务详解

1.Samba软件相关信息

2.登录验证模式(安全级别)

3.常见配置参数解释

4.访问控制

5.服务启动管理

6.客户端登录方式

三、samba部署与实验

1.本地验证(登录、上传、下载)

2.访问控制 – 通过配置限制

a.部分用户登录samba服务器

b.部分用户对共享区域有写权限

c.设置上传文件的默认权限

3.用户别名

4.映射网络驱动器(挂载)

a.Linux下:

b.Window下:

5.图形化web管理界面


一、Samba概述

       SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。如图:

网络服务-SAMBA

1.ftp的优缺点

        优点:文件传输、应用层协议、可跨平台

        缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件

2.Samba的特性

使用smb/cifs协议、可跨平台、可实现文件系统挂载、可实现服务器端修改文件

3.smb协议和cifs之间的关系

       随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Internet上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为CIFS(Common Internet File System),它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。

二、Samba服务详解

1.Samba软件相关信息

1. 协议:SMB/CIFS 2. 服务: smb #实现资源共享、权限验证。 使用TCP协议 端口:139、445 smb(smbd)#资源共享服务 nmbd #主机名解析服务 3. 配置文件(/etc/samba/) smb.conf 主配置文件 smbusers 别名配置文件 

2.登录验证模式(安全级别)

a.  share 匿名验证

b.user本地用户验证

(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户名和密码进行验证)

拓展:tdbsam:该方式是使用一个数据库文件来验证。数据库文件叫passdb.tdb。可以通过pdbedit -a 向数据库中添加新用户,不过要建立的Samba用户必须先是系统用户。也可以理解为我们使用pdbedit -a 将系统用户转化为了samba 用户。pdbedit命令的参数很多,列出几个主要的。

#新建Samba账户(将系统用户转化为samba用户,并设置密码) pdbedit -a username #删除Samba账户 pdbedit -x username #列出Samba用户列表,读取passdb.tdb数据库文件。 pdbedit -L

c.  别名用户访问

 a.useradd user1 b.pdbedit -a user1 并设置密码 c.systemctl start smb d.yum -y install vim net-tools e.netstat -anpt #查看smb启动的服务有哪些

网络服务-SAMBA

f.打开windows文件管理器    \\192.168.79.81\user1    再输入账号密码

网络服务-SAMBA

g.此电脑,右键,映射网络驱动器,驱动器(盘符)z,文件夹:\\192.168.79.81\user1,勾选“使用其他凭据连接”,再输入用户名和密码。

网络服务-SAMBA

3.常见配置参数解释

vim /etc/samba/smb.conf [global]用于定义Samba服务器的总体特性,其配置项对所有共享资源生效 #设定 Samba Server 所要加入的工作组或者域。 workgroup = WORKGROUP #设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。 server string = Samba Server Version %v #设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。 interfaces = lo eth0 192.168.12.2/24 #表示允许连接到Samba Server的客户端,多个参数以空格隔开。 #可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反(二选一)。 hosts allow = 127.192.168.1. 192.168.10.1 例如: #表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50 hosts allow=172.17.2. EXCEPT 172.17.2.50 #表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接 hosts allow=172.17.2.0/255.255.0.0 #设置Samba Server日志文件的存储位置以及日志文件名称。 #在文件名后加个宏%m(主机名),表示 对每台访问Samba Server的机器都单独记录一个日志文件。 log file = /var/log/samba/log.%m #设置Samba Server日志文件的最大容量,单位为kB,0代表不限制 max log size = 50 #设置用户访问Samba Server的验证方式。 security = user passdb backend = tdbsam #设置是否在启动Samba时就共享打印机 load printers = yes/no
[homes]用于设置用户宿主目录的共享属性(特殊共享) [homes] #共享名(特殊共享,泛指每个用户对应的家目录) comment = Home Directories #共享描述(随便写) browseable = no #共享是否可被查看 writable = yes #共享是否可写 ;valid users = %S #允许访问该共享的用户 例如:valid users = bob,@bob(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@组名”表示。) 
[printers]用于设置打印机共享资源的属性(特殊共享,共享打印设备,现在基本不用) [printers] #共享名 comment = All Printers #共享描述(随便写)。 path = /var/spool/samba #通过共享连接服务器时,默认切换的路径(共享路径)。 browseable = no #共享是否可被查看 guest ok = no #是否可以匿名访问,类似于public writable = no #是否可写 printable = yes #是否可以打印
[自定义]自定义共享区域 [web] #共享名,写在客户端连接服务器时的url地址中 comment = xbz #共享描述(随便写)。 path = /date/www #通过共享连接服务器时,默认切换的路径(共享路径)。 public = yes #是否可以匿名访问,类似于guest ok browseable = yes #共享是否可被查看 writable = yes #是否可写(同时设置目录的W)

4.访问控制

写入权限的控制方式(类似于vsftp的限制方式):

a. 配置文件开启,文件系统严格控制(尽量采用这种)

writable = yes setfacl 或 chmod 777

b. 文件系统开启,配置文件严格控制

chmod 777 /dir read only = yes write list = 用户,@组 

5.服务启动管理

a. 启动、停止、重新启动和重新加载Samba服务

service smb start|stop|restart|reload

b. 开机自动启动samba服务

chkconfig --level 2345  smb on|off

6.客户端登录方式

Linux端:

#查看服务器共享 smbclient -U 用户名 -L //服务器IP #登录服务器共享 smbclie nt -U 用户名 //服务器ip/共享名 

Window端:

\\服务器ip\共享名 #windows命令行执行此命令断开连接 (清空登录缓存) net use * /del 

三、samba部署与实验

部署流程:

1.服务器端安装samba

yum -y install samba

2.确认客户端和相关命令软件包是否安装(默认是安装的)

rpm -q samba-client rpm -q samba-common 

3.创建共享区域

cd /etc/samba/ #用smb的完整版覆盖掉精简版 cp -a smb.conf.example ./smb.conf 

网络服务-SAMBA

备份主配置文件

创建独立的共享区间(仿照模板编写)

网络服务-SAMBA

#创建共享目录 mkdir -p /date/www && cd /date/ && ls -lh #给user1用户设置ACL独立权限 setfacl -m u:user1:rwx /date/www/ #注意!!配置文件和文件系统都要给定权限,才能正确的进行读写。 

网络服务-SAMBA

4.启动smb 服务并查看默认共享区域

#C7版本:systemctl restart smb service smb start smbclient -U 用户名 -L smbserverIP 

5.客户端进行连接(最好是平级别的系统进行连接,C6连接C7可能会出现错误

#安装命令 yum -y install smbclint #查看命令是否安装 which smbclient rpm -qf /usr/bin/smbclient #安装samba客户端服务 yum -y install samba-client #进行查看 smbclient -U user1 -L 192.168.88.110 

6.服务器端再创建用户

useradd user2 #使user2用户成为samba用户 pdbedit -a user2 

7.客户端再次查看user2

smbclient -U user2 -L 192.168.88.110 #进行连接 smbclient -U user2 //192.168.88.110/web #此时会发现上传失败,因为没有权限 put可以上传文件,tab键可以补齐 退出,用user1用户再次进行登录,put上传tab补齐,可以成功。

1.本地验证(登录、上传、下载)

a、修改配置文件(添加自定义共享)

[web] comment = the share is xbz path = /date/www public = yes #只有开启匿名用户时才有用 browseable = yes writable = yes #guest ok = YES 和 #表示匿名是否可以访问,两个选项作用一样 public = YES 

b、创建共享目录并给定相应权限

mkdir /date/www #最好使用ACL权限 chmod 777 /date/www 

c、测试配置文件并重启服务

testparm service smb restart

d、首先,创建Linux用户

useradd -s /sbin/nologin zhangsan #不需要创建系统密码 passwd zhangsan 

e、转换为samba用户

pdbedit -a zhangsan

f、客户端查看共享文件夹并登录测试

smbcient -U zhangsan –L IP地址 smbclient –U zhangsan //IP地址/共享名

注:由于未设置上传文件的默认权限,指定用户上传的文件只有自己能修改和覆盖。

2.访问控制 – 通过配置限制

valid users  仅允许部分用户访问共享区域

注:前提条件是指定目录权限给到最大,通过修改配置文件来实现实验结果

a.部分用户登录samba服务器

修改/etc/samba/smb.conf中自定义的共享区域 添加:设置合法用户列表     valid users = 用户,@组(多个逗号分隔)

网络服务-SAMBA

mkdir -p /date/sql #最好给acl权限 chmod 777 /date/sql smbclient -U user2 //192.168.88.110/sql #可以正常上传 put #无法登录,因为没设置选项 smbclient -U user1 //192.168.88.110/sql

网络服务-SAMBA

b.部分用户对共享区域有写权限

修改/etc/samba/smb.conf中自定义的共享区域 添加:开启只读,设置可写列表 read only = yes write list = lisi #白名单

网络服务-SAMBA

例:服务器端重启,客户端使用user1进行连接 smbclient -U user1 //192.168.88.110/sql lcd /etc/ #切换到etc目录下进行上传文件 put virc #再次登录user2 smbclient -U user1 //192.168.88.110/sql lcd /etc/ #无法上传,因为白名单只设置了user1可以上传文件 put profile 

c.设置上传文件的默认权限

create mask 文件的默认权限 directory mask 目录的默认权限 修改配置文件自定义的共享区域 添加: create mask = 644 directory mask = 755

网络服务-SAMBA

例:systemctl restart smb #使用user1进行连接 smbclient -U user1 //192.168.88.110/sql lcd /etc #文件上传成功 put bashrc && ls 

网络服务-SAMBA

3.用户别名

1)添加别名(/etc/samba/smbusers)

添加: zhangsan = zs

2)启用别名(修改主配置文::件)

vim /etc/samba/smb.conf 添加: username map = /etc/samba/smbusers #此选项不能乱写,要写入到【global】全局配置文件中

网络服务-SAMBA

#重启一下 testparm #重启服务 systemctl restart smb useradd -s /sbin/nologin zhangsan #将zhangsan用户转换为samba账号 pdbedit -a zhangsan

3)测试

smbclient -U 别名 //服务器ip/共享名 #zhangsan和别名zs都可以登录 smbclient -U zhangsan(zs) //192.168.88.110/sql

4.映射网络驱动器(挂载)

a.Linux下:

#临时挂载: mount -t cifs -o username=xxx,password=xxx //服务器ip/服务器共享 /本地挂载目录 #永久挂载:/etc/fstab //服务器ip/服务器共享 /本地挂载目录 cifs defaults,username=xxx,password=xxx 0 0 

例:

mkdir /backup/sql -p vim /etc/fstab //192.168.88.110/sql /backup/sql cifs defaults,username=user1,password= 0 0

网络服务-SAMBA

#扫描/etc/fstab文件,将文件内写了但没挂载的选项进行挂载。 mount -a #查看挂载情况 df -h #写入文件和目录测试 cd /backup/sql && echo “aaa” >> x.txt && mkdir xbz && ls -lh #发现权限不对,但是不影响,因为文件本身存在于服务器 cd /date/sql && ls -lh

b.Window下:

    我的电脑、计算机、此电脑、这台电脑等右键映射网络驱动器【注意是反斜杠 \ 】

5.图形化web管理界面

使用C6进行安装   C7版本包名变了,无法安装

1.安装

yum -y install samba samba-swat

2.修改/etc/xinetd.d/swat

添加: only_from = 登录来源IP #也可以写0.0.0.0 disable = no

网络服务-SAMBA

3.重启xinetd服务

service xinetd restart netstat -anpt service smb start

4.测试

浏览器:IP:901 #登录时注意端口号 浏览器打开网址 192.168.88.10:901 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/119669.html

(0)
上一篇 2025-11-03 20:33
下一篇 2025-11-03 21:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信