赞
踩
目录
Ⅰ.Ⅱ在Linux客户端上安装samba-client和cifs-untils
Samba服务器搭建起了Linux与Windows沟通的桥梁,并且提供不同系统的共享服务,还能拥有强大的打印服务功能。
Samba服务器最先在Linux和Windows两个平台之间架起了一座桥梁。我们可以在linux系统和Windows系统之间相互通信,比如复制文件,实现不通操作系统之间的资源共享等。我们可以将其架设称一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印。
SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。
SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,
Samba服务功能强大,这与通信是基于SMB协议有大的关系。SMB协议不仅能够提供目录和打印机共享,还支持认证和权限设置等功能。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口,但随着后期开发,它可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。
[root@localhost ~]# yum -y install samba //安装Samba服务 [root@localhost ~]# rpm -qa | grep samba //检测系统中是否安装了Samba服务
[root@localhost ~]# systemctl restart smb
[root@localhost ~]# systemctl enable smb.service //启动Samba服务和设为开机自启
Samba的配置文件一般放在/etc/samba目录中,主配置文件名为smb.conf
作用范围 | 参数 | 作用 |
[global] #全局配置 | workgroup = SAMBA | #工作组名称 |
security = user | #安全验证的方式。需验证来访问主机提供的口令才可以访问 | |
security = share | #来访主机无需验证口令;比较方便,但不安全 | |
security = server | #使用独立的远程主机验证来访主机提供的口令 | |
security =domain | #使用域控制器进行身份验证 | |
passdb backend =tdbsam | #定义后台的类型,共有三种。第一中:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户 | |
passdb backend =smbpasswd | #使用smbpasswd命令为系统用户Samba服务程序的密码 | |
passdb backend = ldapsam | #ldapsam:基于LDAP服务进行账户验证 | |
load printers = yes | #设置在Samba服务启动时是否共享打印机设备 | |
cups options = raw | #打印机的选项 | |
[homes] #共享参数 | comment = Home Directories | #描述信息 |
browseable = No | #指定共享目录是否在“网上邻居”中可见 | |
read only = No | #指定共享目录是否仅读 | |
browseable = No | #在配置文件中的共享文件下敲这个命令,只有的通过samba服务共享当前文件是否允许可见。其他的非当前共享文件不影响本身效果 | |
printers | #打印机共享参数 | |
1.设置共享名
格式:
【共享名】
2.共享资源描述
格式:
comment= 备注信息
3.共享路径
格式:
path=绝对地址路径
4.设置匿名访问
格式:
public =yes //允许匿名当访问
public =no //不允许匿名当访问
例题1:
Samba服务器中有个共享目录为/share,需要发布该目录成为共享目录,定义共享目录名为public。要求:允许浏览,允许只读,允许匿名访问。设置如下所示
5.设置访问用户
格式:
valid users = 用户名
valid users = @组名
例题2:
Samba服务器/share/tech目录中存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为/tech,经理账号为manager
6.设置目录只读
格式:
read only = yes //只读
read only = no //读写
7.设置过滤主机
格式:
hosts allow = 192.168.10. server.abc.com
//允许来自192.168.10.0或server.abc.com的访问者访问Samba服务器资源hosts deny = 192.168.10. server.abc.com
//拒绝来自192.168.10.0或server.abc.com的访问者访问Samba服务器资源
例题3:
Samba服务器公共目录/public存放大量共享数据,为保证目录安全,仅允许192.168.80.0的网络的主机访问,并且只允许读取,禁止写入。
8.设置目录可写
格式:
writable = yes //读写
writable = no //只读
9.设置目录只允许部分用户或组读写
格式:
writable list = 用户名 //允许该用户读写
writable list = @组 //允许该组读写
10.[home]为特殊共享目录,表示用户主目录。[printers]表示共享打印机
1.Samba服务日志文件
日志文件对于Samba非常重要,他储存着客户端访问Samba服务器的信息,以及Samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题
Samba服务的日志文件默认在/var/log/samba/中
2.Samba服务密码文件
Samba服务器发布共享资源后,客户端访问Samba服务器,需要提交用户名和密码进行身份验证,验证合格才可以进行登录。
Samba服务为了实现客户身份验证功能,将用户名和密码信息存放在/etc/samba/smbpasswd中。
建立一个Samba账户。
格式:smbpasswd -a 用户名
你会发现,刚开始会报错,这是因为linux本地用户里没有reading这个用户,在linux系统里面添加一个reading用户,再次创建reading用户,就成功了。
所以:在建立Samba账号之前,一定要先建立一个与Samba账号同名的系统账号
示例1:如果公司有多个部门,因工作需要,就必须分门别类地建立相应部门地目录。要求将销售部的资料存放在Samba服务器的/companydate/sales/目录下集中管理,以便销售人员浏览,并且该目录只允许销售部员工访问。
需求分析:在/companydata/sales/ 目录中存放有销售部的重要数据,为了保证其他部门无法查看其内容,我们需要将全局配置中security 设置为user安全级别。这样就启用了Samba服务器的身份验证机制。然后在共享目录/companydata/sales下设置valid users 字段,配置只允许销售部员工访问这个共享目录
(1).建立共享目录,并在其下建立测试文件
[root@localhost ~]# mkdir -p /companydate/sales/
[root@localhost ~]# touch /companydate/sales/test_share.tar(2).添加销售部用户和组并添加相对应的Samba账户、
[root@localhost ~]# groupadd sales //创建销售组sales
[root@localhost ~]# useradd -g sales -p centos sales1 //创建销售组组成员sales1
[root@localhost ~]# useradd -g sales -p centos sales2 //创建销售组组成员sales2
[root@localhost ~]# useradd test_user1 //创建测试用户
[root@localhost ~]# echo centos | passwd --stdin test_user1 //设置密码
[root@localhost ~]# smbpasswd -a sales1 //创建Samba账户
[root@localhost ~]# smbpasswd -a sales2(3).修改Samba主配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
在全局配置里设置user安全级别模式,默认值
[sales] -----设置共享目录的共享名为sales
comment = sales
path = /companydate/sales --设置共享目录的绝对路径
writable = yes ----设置可以读写
browseable =yes
valid users = @sales --设置可以访问的用户组为sales组
(4).设置共享目录的本地系统权限
[root@localhost ~]# chmod -R 777 /companydate/sales/
[root@localhost ~]# chown -R sales1:sales /companydate/sales/
[root@localhost ~]# chown -R sales2:sales /companydate/sales/(5).关闭SElinux和关闭防火墙或者让防火墙放行
[root@localhost ~]# vim /etc/selinux/config
把enforcing改为disabled[root@localhost ~]# firewall-cmd --list-all //列出所有的放行名单
[root@localhost ~]# firewall-cmd --permanent --add-service=samba //添加放行服务samba
[root@localhost ~]# firewall-cmd --reload //重新加载防火墙
[root@localhost ~]# firewall-cmd --list-all //列出所有的放行名单
(7).重新加载Samba服务
[root@localhost ~]# systemctl restart smb
四.配置Samba客户端
现在我们的系统大多都是win10,win10的samba服务都是默认关闭的,所以
第一:Windows10开启Samba
打开控制面板:win+r打开运行框,输入control
进入程序和功能,点击启用或关闭Windows功能
找到SMB 1.0/CIFS文件共享支持,一般打开之后会重启电脑
重启之后,打开资源管理器
输入Samba服务端的ip地址
输入用户名和密码,就是刚才创建的
开启centos8虚拟机作为Linux的客户端
Ⅰ.Ⅱ在Linux客户端上安装samba-client和cifs-untils
[root@localhost ~]# yum -y install samba-client
[root@localhost ~]# yum -y install cifs-utils.x86_64Ⅱ.Linux客户端使用smbclient命令访问服务器
格式为:smbclient -L 目标主机ip地址/主机名 -U 登录用户%密码
不输入用户名和密码,这样表示匿名用户登录,然后显示匿名用户可以看到的共享目录列表
只有输入用户名和密码,才有权限浏览和访问sales共享目录
Ⅲ.使用smbclient命令行共享访问模式浏览共享的资料
格式:smbclient //目标IP地址或主机名/共享目录 -U 用户名%密码
进入交互式界面,输入“?”将列出具体命令
ls 列出文件
不能创建文件,可以创建目录-
Ⅳ.linux客户端使用mount命令挂载共享目录
格式:mount -t cifs //目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名
[root@localhost ~]# mkdir -p /testdir/samdata //递归创建目录,挂载点
[root@localhost ~]# mount -t cifs //192.168.80.128/sales /testdir/samdata/ -o username=sales1
Password for sales1@//192.168.80.128/sales: ****** //输入sales1密码
[root@localhost ~]# cd /testdir/samdata/
[root@localhost samdata]# ls
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。