文章目录
- 第十章 使用Samba或NFS实现共享文件
- 一、SAMBA文件共享服务
- 1、SAMBA简介
- 2、相关配置
- (1)、安装软件
- (2)、删除多余配置文件
- (3)、Samba服务验证方式
- 3、配置共享资源
- (1)、用于设置Samba服务程序的参数以及作用
- (2)、pdbedit命令
- (3)、创建用于访问共享资源的账户信息
- (4)、创建用于共享资源的文件目录
- (5)、设置SELinux服务与策略
- (6)、编辑配置文件
- (7)、重启服务并设置为开机自启动
- (8)、清空防火墙并将samba服务添加到防火墙
- (9)、查看共享详情
- 4、Windows挂载共享
- (1)、输入网络凭证
- (2)、登录成功
- 5、Linux挂载共享
- (1)、安装软件
- (2)、创建一个用于挂载Samba服务共享资源的目录
- (3)、编辑一个文本
- (4)、服务器查看是否存在
- (5)、Windows客户端查看是否存在
- 二、NFS网络文件系统
- 1、安装NFS软件
- 2、配置防火墙策略
- 3、创建用于NFS文件共享的目录,并设置权限
- 4、编辑配置文件
- (1)、格式
- (2)、用于配置NFS服务程序配置文件的参数
- (3)、编辑配置文件
- 5、重启服务并设置开机自启动
- 6、客户端查询NFS服务器的远程共享信息
- (1)、showmount命令
- (2)、showmount命令中可用的参数以及作用
- (3)、查询NFS服务器的远程共享信息
- 7、创建挂载目录并挂载
- 8、查看内容
- 三、AutoFs自动挂载在服务
- 1、AutoFs简介
- 2、安装autofs
- 3、配置文件
- (1)、主配置文件格式
- (2)、编辑主配置文件
- (3)、编辑子配置文件并重启服务
- 4、检验
第十章 使用Samba或NFS实现共享文件
一、SAMBA文件共享服务
1、SAMBA简介
1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block)服务器消息块协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。当时,Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以SMB是没有意义的字符而拒绝了申请。后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。
2、相关配置
(1)、安装软件
[root@centos ~]# yum install samba samba-client
上次元数据过期检查:0:01:08 前,执行于 2023年05月10日 星期三 09时59分32秒。
依赖关系解决。
======================================================================================================
软件包 架构 版本 仓库 大小
======================================================================================================
安装:
samba x86_64 4.14.5-7.el8_5 base 848 k
samba-client x86_64 4.14.5-7.el8_5 base 701 k
安装依赖关系:
samba-common-tools x86_64 4.14.5-7.el8_5 base 500 k
samba-libs x86_64 4.14.5-7.el8_5 base 169 k
事务概要
======================================================================================================
安装 4 软件包
总下载:2.2 M
安装大小:6.3 M
确定吗?[y/N]: y
下载软件包:
(1/4): samba-common-tools-4.14.5-7.el8_5.x86_64.rpm 673 kB/s | 500 kB 00:00
(2/4): samba-client-4.14.5-7.el8_5.x86_64.rpm 699 kB/s | 701 kB 00:01
(3/4): samba-libs-4.14.5-7.el8_5.x86_64.rpm 569 kB/s | 169 kB 00:00
(4/4): samba-4.14.5-7.el8_5.x86_64.rpm 796 kB/s | 848 kB 00:01
------------------------------------------------------------------------------------------------------
总计 2.0 MB/s | 2.2 MB 00:01
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : samba-libs-4.14.5-7.el8_5.x86_64 1/4
安装 : samba-common-tools-4.14.5-7.el8_5.x86_64 2/4
安装 : samba-4.14.5-7.el8_5.x86_64 3/4
运行脚本: samba-4.14.5-7.el8_5.x86_64 3/4
安装 : samba-client-4.14.5-7.el8_5.x86_64 4/4
运行脚本: samba-client-4.14.5-7.el8_5.x86_64 4/4
验证 : samba-4.14.5-7.el8_5.x86_64 1/4
验证 : samba-client-4.14.5-7.el8_5.x86_64 2/4
验证 : samba-common-tools-4.14.5-7.el8_5.x86_64 3/4
验证 : samba-libs-4.14.5-7.el8_5.x86_64 4/4
已安装:
samba-4.14.5-7.el8_5.x86_64 samba-client-4.14.5-7.el8_5.x86_64
samba-common-tools-4.14.5-7.el8_5.x86_64 samba-libs-4.14.5-7.el8_5.x86_64
完毕!
(2)、删除多余配置文件
8行到11行用于打印机或打印服务器。
13行至18行代表共享该登录用户的家目录内容。
20行至25行是用SMB协议共享本地的打印机设备,方便局域网内的用户可以远程使用。
27行至33行依然为共享打印机设备的参数。
//复制并重命名为备份文件
[root@centos ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
//过滤注释信息并通过重定向符写回原始的主配置文件
[root@centos ~]# grep -v "#" /etc/samba/smb.conf.bak > /etc/samba/smb.conf
//查看配置文件
1
2 [global] //全局参数
3 workgroup = SAMBA //工作组名称
4 security = user //安全验证的方式,总共有4种
5
6 passdb backend = tdbsam //定义用户后台的类型,总共有3种
7
8 printing = cups //打印服务协议
9 printcap name = cups //打印服务名称
10 load printers = yes //是否加载打印机
11 cups options = raw //打印机的选项
12
13 [homes] //共享名称
14 comment = Home Directories //描述信息
15 valid users = %S, %D%w%S //可用账户
16 browseable = No //指定共享信息是否在“网上邻居”中可见
17 read only = No //是否只读
18 inherit acls = Yes //是否继承访问控制列表
19
20 [printers] //共享名称
21 comment = All Printers //描述信息
22 path = /var/tmp //共享路径
23 printable = Yes //是否可打印
24 create mask = 0600 //文件权限
25 browseable = No //指定共享信息是否在“网上邻居”中可见
26
27 [print$] //共享名称
28 comment = Printer Drivers //描述信息
29 path = /var/lib/samba/drivers //共享路径
30 write list = @printadmin root //可写入文件的用户列表
31 force group = @printadmin //用户组列表
32 create mask = 0664 //文件权限
33 directory mask = 0775 //目录权限
//删除多于配置
1 [global]
2 workgroup = SAMBA
3 security = user
4 passdb backend = tdbsam
(3)、Samba服务验证方式
share代表主机无需验证口令,方便但安全性差。
user代表登录samba服务时需要使用账号密码进行验证,默认的验证方式。
domain代表域控制器进行身份验证,限制用户的来源域。
server代表使用独立主机验证来访问用户的提供的口令,相当于是集中管理账号,并不常用。
3、配置共享资源
(1)、用于设置Samba服务程序的参数以及作用
参数 | 作用 |
---|---|
[database] | 共享名称为database |
comment = Do not arbitrarily modify the database file | 警告用户不要随意修改数据库 |
path = /home/databse | 共享目录为/home/database |
public = no | 关闭“所有人可见” |
writable = yes | 允许写入操作 |
(2)、pdbedit命令
pdbedit命令用于管理samba服务程序的账户信息数据库。
命令格式:pdbedit [参数] 账户
参数 | 作用 |
---|---|
-a 用户名 | 建立Samba用户 |
-x 用户名 | 删除Samba用户 |
-L | 列出用户列表 |
-Lv | 列出用户详细信息的列表 |
(3)、创建用于访问共享资源的账户信息
[root@centos ~]# pdbedit -a -u centos
new password:
retype new password:
Unix username: centos
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1983499767-1229073009-776358970-1000
Primary Group SID: S-1-5-21-1983499767-1229073009-776358970-513
Full Name: centos
Home Directory: \\CENTOS\centos
HomeDir Drive:
Logon Script:
Profile Path: \\CENTOS\centos\profile
Domain: CENTOS
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 三, 06 2月 2036 23:06:39 CST
Kickoff time: 三, 06 2月 2036 23:06:39 CST
Password last set: 三, 10 5月 2023 10:48:33 CST
Password can change: 三, 10 5月 2023 10:48:33 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
(4)、创建用于共享资源的文件目录
[root@centos ~]# mkdir /home/database
[root@centos ~]# chown -Rf centos:centos /home/database/
[root@centos ~]# semanage fcontext -a -t samba_share_t /home/database
[root@centos ~]# restorecon -Rv /home/database/
Relabeled /home/database from unconfined_u:object_r:user_home_dir_t:s0 to unconfined_u:object_r:samba_share_t:s0
(5)、设置SELinux服务与策略
[root@centos ~]# setsebool -P samba_enable_home_dirs on
(6)、编辑配置文件
[root@centos ~]# cat /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
[database]
comment = Do not arbitrarily modify the database file
path = /home/database
public = no
writable = yes
(7)、重启服务并设置为开机自启动
//重启服务
[root@centos ~]# systemctl restart smb.service
//设置为开机自启动
[root@centos ~]# systemctl enable smb.service
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
(8)、清空防火墙并将samba服务添加到防火墙
//清空防火墙
[root@centos ~]# iptables -F
//保存清空的配置
[root@centos ~]# iptables-save
//将samba服务添加到防火墙
[root@centos ~]# firewall-cmd --zone=public --add-service=samba --permanent
success
//重启服务
[root@centos ~]# firewall-cmd --reload
success
(9)、查看共享详情
[root@centos ~]# smbclient -U centos -L 172.16.136.100
Enter SAMBA\centos's password:
Sharename Type Comment
--------- ---- -------
database Disk Do not arbitrarily modify the database file
IPC$ IPC IPC Service (Samba 4.14.5)
SMB1 disabled -- no workgroup available
4、Windows挂载共享
(1)、输入网络凭证
(2)、登录成功
5、Linux挂载共享
(1)、安装软件
┌──(kali㉿kali)-[~]
└─$ sudo apt install cifs-utils
(2)、创建一个用于挂载Samba服务共享资源的目录
//创建目录
┌──(root㉿kali)-[~]
└─# mkdir /database
//挂载Samba服务
┌──(root㉿kali)-[/]
└─# mount -t cifs -o username=centos,password=123456 //172.16.136.100/database /database
//查看挂载状态
┌──(root㉿kali)-[/]
└─# df -h
文件系统 大小 已用 可用 已用% 挂载点
udev 1.9G 0 1.9G 0% /dev
tmpfs 390M 1.2M 389M 1% /run
/dev/sda1 48G 17G 30G 37% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 390M 88K 390M 1% /run/user/1000
//172.16.136.100/database 17G 5.3G 12G 31% /database
(3)、编辑一个文本
┌──(root㉿kali)-[/]
└─# vim /database/1.txt
good!
(4)、服务器查看是否存在
[root@centos ~]# tree /home/database/ /home/database/
└── 1.txt 0 directories, 1 file [root@centos ~]# cat /home/database/1.txt good!
(5)、Windows客户端查看是否存在
二、NFS网络文件系统
1、安装NFS软件
[root@centos ~]# yum install nfs-utils
上次元数据过期检查:1:58:37 前,执行于 2023年05月10日 星期三 09时59分32秒。
软件包 nfs-utils-1:2.3.3-46.el8.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
2、配置防火墙策略
//清空防火墙
[root@centos ~]# iptables -F
//保存清空的配置
[root@centos ~]# iptables-save
//将服务添加到防火墙
[root@centos ~]# firewall-cmd --zone=public --add-service=nfs --permanent
success
[root@centos ~]# firewall-cmd --zone=public --add-service=rpc-bind --permanent
success
[root@centos ~]# firewall-cmd --zone=public --add-service=mountd --permanent
success
//重启服务
[root@centos ~]# firewall-cmd --reload
success
3、创建用于NFS文件共享的目录,并设置权限
//创建目录
[root@centos ~]# mkdir /nfsfile
//设置权限
[root@centos ~]# chmod -R 777 /nfsfile/
//创建一个文本
[root@centos ~]# echo "请求阅读内容!" > /nfsfile/redme
4、编辑配置文件
(1)、格式
共享目录的路径 允许访问的NFS客户端 (共享权限参数)
(2)、用于配置NFS服务程序配置文件的参数
参数 | 作用 |
---|---|
ro | 只读 |
rw | 读写 |
root_squash | 当NFS客户端以root管理员访问时,映射NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么帐户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内容,然后再写入硬盘,这样效率更高,但可能会丢失数据 |
(3)、编辑配置文件
[root@centos ~]# vim /etc/exports
/nfsfile 172.16.*.*(rw,sync,root_squash)
5、重启服务并设置开机自启动
[root@centos ~]# systemctl restart rpcbind.service && systemctl enable rpcbind.service
[root@centos ~]# systemctl restart nfs-server.service && systemctl enable nfs-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
6、客户端查询NFS服务器的远程共享信息
(1)、showmount命令
showmount命令用于查询NFS服务器的远程共享信息。
命令格式:showmount [参数] 共享的目录名称 允许使用客户端地址
(2)、showmount命令中可用的参数以及作用
参数 | 作用 |
---|---|
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况NFS资源的清空 |
-v | 显示版本号 |
(3)、查询NFS服务器的远程共享信息
┌──(root㉿kali)-[/]
└─# showmount -e 172.16.136.100
Export list for 172.16.136.100:
/nfsfile 172.16.*.*
7、创建挂载目录并挂载
┌──(root㉿kali)-[/]
└─# mkdir /nfsfile
┌──(root㉿kali)-[/]
└─# mount -t nfs 172.16.136.100:/nfsfile /nfsfile
8、查看内容
┌──(root㉿kali)-[/]
└─# cat /nfsfile/redme
请求阅读内容!
三、AutoFs自动挂载在服务
1、AutoFs简介
autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件。
2、安装autofs
[root@centos ~]# yum install autofs
上次元数据过期检查:2:27:12 前,执行于 2023年05月10日 星期三 09时59分32秒。
依赖关系解决。
======================================================================================================
软件包 架构 版本 仓库 大小
======================================================================================================
安装:
autofs x86_64 1:5.1.4-74.el8 base 706 k
事务概要
======================================================================================================
安装 1 软件包
总下载:706 k
安装大小:2.8 M
确定吗?[y/N]: y
下载软件包:
autofs-5.1.4-74.el8.x86_64.rpm 1.5 MB/s | 706 kB 00:00
------------------------------------------------------------------------------------------------------
总计 1.5 MB/s | 706 kB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : autofs-1:5.1.4-74.el8.x86_64 1/1
运行脚本: autofs-1:5.1.4-74.el8.x86_64 1/1
验证 : autofs-1:5.1.4-74.el8.x86_64 1/1
已安装:
autofs-1:5.1.4-74.el8.x86_64
完毕!
3、配置文件
(1)、主配置文件格式
挂载目录 子配置文件
(2)、编辑主配置文件
//复制配置文件
[root@centos ~]# cp /etc/auto.master /etc/auto.master.bak
//过滤注释
[root@centos ~]# grep -v "#" /etc/auto.master.bak > /etc/auto.master
//编辑配置文件
1 /media /etc/iso.misc
2 /misc /etc/auto.misc
3 /net -hosts
4 +dir:/etc/auto.master.d
5 +auto.master
(3)、编辑子配置文件并重启服务
//编辑子配置文
[root@centos ~]# vim /etc/iso.misc
iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
//重启服务并设置开机自启动
[root@centos ~]# systemctl start autofs.service && systemctl enable autofs.service
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
4、检验
[root@centos ~]# umount /dev/cdrom
[root@centos ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 18M 1.8G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 5.3G 12G 31% /
/dev/sda1 1014M 347M 668M 35% /boot
tmpfs 371M 32K 371M 1% /run/user/0
[root@centos ~]# cd /media/
[root@centos media]# ls
[root@centos media]# cd iso
[root@centos iso]# ls
AppStream BaseOS EFI images isolinux LICENSE media.repo TRANS.TBL
[root@centos iso]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 18M 1.8G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 5.3G 12G 31% /
/dev/sda1 1014M 347M 668M 35% /boot
tmpfs 371M 32K 371M 1% /run/user/0
/dev/sr0 11G 11G 0 100% /media/iso