linux-运维进阶-17 Samba服务与NFS
概念解析
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
samba
安装samba服务
1 | [root@localhost ~]# yum install samba -y |
[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] | #打印机共享参数 |
去掉配置文件中的注释
1 | [root@localhost ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak |
配置一个共享
1 | [root@localhost ~]# vim /etc/samba/smb.conf |
新建共享所需要的目录
1 | [root@localhost ~]# mkdir /home/database |
新建访问共享使用的用户(注意:此用户并非本地用户,但是本地要有一个用户与之对应)
1 | 新建本地用户aaa |
对共享的目录配置相应的权限
1 | 安装semanage管理工具 |
启动samba服务,配置防火墙
1 | [root@localhost ~]# systemctl restart smb |
在windows上访问samba共享,win+r 输入
1 | \\ip |
输入账号aaa和你刚刚设置的密码即可
在linux客户端上访问samba共享
我们现在另外开一台虚拟机,用作客户端client,没有第二台虚拟机的可以现装一个
安装客户端需要的软件包
1 | [root@localhost ~]# yum install samba-client cifs-utils -y |
访问samba的共享
注意ip不要输错了,我的samba服务器ip是192.168.141.12,但是你的可不一定,用户名也是如此
1 | [root@localhost ~]# smbclient //192.168.141.12/database -U aaa |
客户端开机自动挂载samba的共享
客户端配置:
1 | [root@localhost ~]# vim auth.smb |
编辑/etc/fstab文件
1 | [root@localhost ~]# vim /etc/fstab |
创建挂载文件夹/database,重载fstab测试挂载是否成功
1 | [root@localhost ~]# mkdir /database |
看到有内容说明挂载成功
NFS
现在我们可以关掉客户端,回到samba服务器继续接下来的实验
安装nfs工具包
1 | [root@localhost ~]# yum install nfs-utils.x86_64 -y |
创建共享的目录,并为目录设置权限
1 | [root@localhost ~]# mkdir /nfsfile |
编辑nfs共享配置文件
1 | [root@localhost ~]# vim /etc/exports |
启动nfs服务
1 | [root@localhost ~]# systemctl restart rpcbind |
nfs客户端配置
1 | [root@localhost ~]# showmount -e 192.168.141.12 |
autofs自动挂载服务
当检测到用户视图访问一个尚未挂载的文件系统时,autofs将自动挂载该文件系统
安装autofs
1 | [root@localhost ~]# yum install autofs -y |
autofs主配置文件中需要按照“挂载目录 子配置文件”的格式进行填写。
挂载目录是设备挂载位置的上一级目录。
例如,光盘设备一般挂载到/media/cdrom目录中,那么挂载目录写成/media即可。
1 | [root@localhost ~]# vim /etc/auto.master |
在子配置文件中,应按照“挂载目录 挂载文件类型及权限 :设备名称”的格式进行填写。
例如,要把光盘设备挂载到/media/iso目录中,
- 可将挂载目录写为iso,
- 而-fstype为文件系统格式参数,
- iso9660为光盘设备格式,
- ro、nosuid及nodev为光盘设备具体的权限参数,
/dev/cdrom则是定义要挂载的设备名称。配置完成后再顺手将autofs服务程序启动并加入到系统启动项中:
1 | [root@localhost ~]# vi /etc/iso.misc |
检查是否一开始没有挂载iso,但是一旦访问iso子目录,就立马被挂载上
1 | [root@localhost ~]# df -h |