Linux就该这么学--Samba NFS的配置
SAMBA文件共享服务
Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的选择
1.安装ansible
[root@myserver ~]# yum install -y samba
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 2:01:32 ago on Sun 31 Jan 2021 11:01:23 PM CST.
Dependencies resolved.
=================================================================================================Package Arch Version Repository Size
=================================================================================================
Installing:samba x86_64 4.9.1-8.el8 BaseOS 708 k
Installing dependencies:samba-common-tools x86_64 4.9.1-8.el8 BaseOS 461 ksamba-libs x86_64 4.9.1-8.el8 BaseOS 177 kTransaction Summary
=================================================================================================
Install 3 PackagesTotal size: 1.3 M
Installed size: 3.5 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing : 1/1 Installing : samba-libs-4.9.1-8.el8.x86_64 1/3 Running scriptlet: samba-libs-4.9.1-8.el8.x86_64 1/3 Installing : samba-common-tools-4.9.1-8.el8.x86_64 2/3 Installing : samba-4.9.1-8.el8.x86_64 3/3 Running scriptlet: samba-4.9.1-8.el8.x86_64 3/3 Verifying : samba-4.9.1-8.el8.x86_64 1/3 Verifying : samba-common-tools-4.9.1-8.el8.x86_64 2/3 Verifying : samba-libs-4.9.1-8.el8.x86_64 3/3
Installed products updated.Installed:samba-4.9.1-8.el8.x86_64 samba-common-tools-4.9.1-8.el8.x86_64 samba-libs-4.9.1-8.el8.x86_64 Complete!
[root@myserver ~]#
2.安装完毕后打开Samba服务程序的主配置文件
[root@myserver ~]# vim /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.[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
配置参数如下:
[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] | #打印机共享参数 | |
comment = All Printers | ||
path = /var/spool/samba | #共享文件的实际路径(重要)。 | |
browseable = no | ||
guest ok = no | #是否所有人可见,等同于"public"参数。 | |
writable = no | ||
printable = yes |
配置共享资源
Samba服务程序的主配置文件与前面学习过的Apache服务很相似,包括全局配置参数和区域配置参数。全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效
[root@myserver ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
[root@myserver ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
[root@myserver ~]# cat /etc/samba/smb.conf
[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
1. 编辑好配置文件后,创建用户账户信息
pdbedit命令中使用的参数以及作用
-a 用户名 | 建立Samba用户 |
-x 用户名 | 删除Samba用户 |
-L | 列出用户列表 |
-Lv | 列出用户详细信息的列表 |
2. 创建用于共享资源的文件目录
3.设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。执行getsebool命令,筛选出所有与Samba服务程序相关的SELinux域策略,根据策略的名称(和经验)选择出正确的策略条目进行开启即可
4.在Samba服务程序的主配置文件中,在原始的配置文件中加入共享目录文件信息
[root@myserver ~]# vim /etc/samba/smb.conf[global]workgroup = SAMBAsecurity = userpassdb backend = tdbsamprinting = cupsprintcap name = cupsload printers = yescups options = raw
[database]comment = Do not arbitrarily modify the database file #警告用户不要随意修改数据库path = /home/database #共享目录为/home/databasepublic = no #关闭所有人可见writable = yes #允许写入操作
5.Samba服务程序的配置工作基本完毕。接下来重启smb服务
6.windows客户端访问
windows访问报错找不到共享文件时记得加防火墙策略
在windows编写的文件,同样在Linux看到的效果如下
Linux挂载共享
1. 在linux的客户端安装cifs-utils
[root@slave1 ~]# yum install cifs-utils
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:00:15 ago on Sun 31 Jan 2021 09:45:40 PM CST.
Dependencies resolved.
=================================================================================================Package Arch Version Repository Size
=================================================================================================
Installing:cifs-utils x86_64 6.8-2.el8 BaseOS 93 kTransaction Summary
=================================================================================================
Install 1 PackageTotal size: 93 k
Installed size: 189 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing : 1/1 Installing : cifs-utils-6.8-2.el8.x86_64 1/1 Running scriptlet: cifs-utils-6.8-2.el8.x86_64 1/1 Verifying : cifs-utils-6.8-2.el8.x86_64 1/1
Installed products updated.Installed:cifs-utils-6.8-2.el8.x86_64 Complete!
[root@slave1 ~]#
2.在Linux客户端,按照Samba服务的用户名、密码、共享域的顺序将相关信息写入到一个认证文件中。为了保证不被其他人随意看到,最后把这个认证文件的权限修改为仅root管理员才能够读写
[root@slave1 ~]# vim auth.smbusername=yhd
password=000000
domain=SAMBA
[root@slave1 ~]# chmod -Rf 600 auth.smb
3.在Linux客户端上创建一个用于挂载Samba服务共享资源的目录,并把挂载信息写入到/etc/fstab文件中,以确保共享挂载信息在服务器重启后依然生效
[root@slave1 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Sun Nov 1 11:12:31 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=a9745542-52aa-46e9-8559-c7eadd2e4b20 /boot xfs defaults 0 0
/dev/mapper/rhel-home /home xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
//192.168.1.88/database /database cifs credentials=/root/auth.smb 0 0
[root@slave1 ~]#
Linux客户端成功地挂载了Samba服务的共享资源。进入到挂载目录/database后就可以看到Windows系统访问Samba服务程序时留下来的文件了
NFS网络文件系统
在RHEL8中的NFS默认是未开启的但是已经安装
1. 为了检验NFS服务配置的效果,我们需要使用两台Linux主机(一台充当NFS服务器,一台充当NFS客户端)
2. 在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限。
[root@myserver ~]# mkdir /nfsfile
[root@myserver ~]# chmod -Rf 777 /nfsfile
[root@myserver ~]# echo "this is a test" > /nfsfile/readme
[root@myserver ~]#
3. NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 允许访问的NFS客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。
用于配置NFS服务程序配置文件的参数
参数 | 作用 |
ro | 只读 |
rw | 读写 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
4. 编辑主配置文件 NFS客户端地址与权限之间没有空格
[root@myserver ~]# vim /etc/exports/nfsfile 192.168.1.* (rw,sync,root_squash)
5.启动和启用NFS服务程序。由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序,并将这两个服务一并加入开机启动项中
[root@myserver ~]# systemctl restart rpcbind
[root@myserver ~]# systemctl enable rpcbind
[root@myserver ~]# systemctl start nfs-server
[root@myserver ~]# systemctl enable nfs-server
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[root@myserver ~]# firewall-cmd --permanent --add-service=n
nfs nfs3 nmea-0183 nrpe ntp nut
[root@myserver ~]# firewall-cmd --permanent --add-service=nfs
success
[root@myserver ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@myserver ~]# firewall-cmd --permanent --add-service=mountd
success
[root@myserver ~]# firewall-cmd --reload
showmount命令中可用的参数以及作用
参数 | 作用 |
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况NFS资源的情况 |
-v | 显示版本号 |
[root@myserver ~]# showmount -e 192.168.1.88
Export list for 192.168.1.88:
/nfsfile (everyone)
然后在NFS客户端创建一个挂载目录。使用mount命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。
[root@slave1 nfsfile]# mount -t nfs 192.168.1.88:/nfsfile /nfsfile
[root@slave1 nfsfile]# cd ..
[root@slave1 /]# cd nfsfile/
[root@slave1 nfsfile]# ls
readme
[root@slave1 nfsfile]# cat readme
this is a test
AutoFs自动挂载服务
autofs自动挂载服务可以帮我们解决这一问题。与mount命令不同,autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。换句话说,我们将挂载信息填入/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。
1.安装autofs
[root@myserver ~]# yum install -y autofs
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:46:11 ago on Mon 01 Feb 2021 02:03:28 AM CST.
Dependencies resolved.
=================================================================================================Package Arch Version Repository Size
=================================================================================================
Installing:autofs x86_64 1:5.1.4-29.el8 BaseOS 755 kTransaction Summary
=================================================================================================
Install 1 PackageTotal size: 755 k
Installed size: 3.5 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing : 1/1 Installing : autofs-1:5.1.4-29.el8.x86_64 1/1 Running scriptlet: autofs-1:5.1.4-29.el8.x86_64 1/1 Verifying : autofs-1:5.1.4-29.el8.x86_64 1/1
Installed products updated.Installed:autofs-1:5.1.4-29.el8.x86_64 Complete!
[root@myserver ~]#
2.查看编辑主配置文件
3.编辑在子配置文件中,应按照“挂载目录 挂载文件类型及权限 :设备名称”的格式进行填写。例如,要把光盘设备挂载到/media/iso目录中,可将挂载目录写为iso,而-fstype为文件系统格式参数,iso9660为光盘设备格式,ro、nosuid及nodev为光盘设备具体的权限参数,/dev/cdrom则是定义要挂载的设备名称。配置完成后再顺手将autofs服务程序启动并加入到系统启动项中:
[root@myserver ~]# vim /etc/iso.misciso -fstype=iso9660,ro :/dev/cdrom[root@myserver ~]# systemctl start autofs
[root@myserver ~]# systemctl enable autofs
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
4进入media目录查看即可
[root@myserver misc]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 969M 0 969M 0% /dev
tmpfs 984M 0 984M 0% /dev/shm
tmpfs 984M 9.6M 974M 1% /run
tmpfs 984M 0 984M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 39G 4.8G 34G 13% /
/dev/mapper/rhel-home 19G 260M 19G 2% /home
/dev/sda1 1014M 153M 862M 15% /boot
tmpfs 197M 16K 197M 1% /run/user/42
tmpfs 197M 4.6M 193M 3% /run/user/0
[root@myserver misc]# cd /media/
[root@myserver /]# cd /media
[root@myserver media]# ls
[root@myserver media]# ll
total 0
[root@myserver media]# cd iso
[root@myserver iso]# ls
AppStream EFI extra_files.json images media.repo RPM-GPG-KEY-redhat-release
BaseOS EULA GPL isolinux RPM-GPG-KEY-redhat-beta TRANS.TBL
[root@myserver iso]# pwd
/media/iso
[root@myserver iso]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 969M 0 969M 0% /dev
tmpfs 984M 0 984M 0% /dev/shm
tmpfs 984M 9.6M 974M 1% /run
tmpfs 984M 0 984M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 39G 4.8G 34G 13% /
/dev/mapper/rhel-home 19G 260M 19G 2% /home
/dev/sda1 1014M 153M 862M 15% /boot
tmpfs 197M 16K 197M 1% /run/user/42
tmpfs 197M 4.6M 193M 3% /run/user/0
/dev/sr0 6.7G 6.7G 0 100% /media/iso
Linux就该这么学--Samba NFS的配置相关推荐
- linux下启动nfs服务,linux下Samba服务和NFS服务配置的方法
linux下Samba服务和NFS服务配置 一.Samba服务配置过程 samba的功能很简单,就是为了使linux和windows之间能够实现共享.并且利用samba搭建文件服务器,不仅比windo ...
- CenOS6 nginx+pxe+tftpd+samba/nfs+dhcpd 无盘安装windows linux
CenOS6 nginx+pxe+tftpd+samba/nfs+dhcpd 无盘安装windows & linux 参考文档: http://www.debian-administratio ...
- Linux就该这么学第十三节课学习心得
9.1 配置网卡服务 9.1.1 配置网卡参数 截至目前,大家已经完全可以利用当前所学的知识来管理Linux系统了.当然,大家的水平完全可以更进一步,当有朝一日登顶技术巅峰时,您一定会感谢现在正在努力 ...
- 《Linux就该这么学》读书笔记
开源文档地址: https://www.linuxprobe.com/docs/LinuxProbe.pdf 对linux感兴趣的小伙伴可以移步到我的专栏:https://blog.csdn.net/ ...
- Linux就该这么学--第五期 学习笔记
第一节:基础 <Linux就该这么学>第二期视频 Linux就该这么学第5期第二节: ------------ 你的价值:你对公司做出的共享和你的不可替代性 ------------ 瑞尔 ...
- 《Linux就该这么学》—非常适合linux技术学习的入门好书
<Linux就该这么学>是一本注重于实用性的Linux系统技术自学书籍,自基础篇公布后网站每天日常阅读量已经超过10000多人,25万多名忠实粉丝读者,是目前国内人气增速最快的IT书籍.您 ...
- 在Linux下轻松玩转Samba服务器
一.samba概念和功能 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Mi ...
- Linux实战教学笔记22:企业级NFS网络文件共享服务
第二十二节 企业级NFS网络文件共享服务 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载 ...
- Linux服务器之Samba匿名访问配置
摘要:Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共 ...
最新文章
- C语言网络编程:socket函数
- 评定星级的前端显示js
- osmnx 应用 可视化两张图异同的点和边
- CRM订单状态的Open, In process和Completed这些条目是从哪里来的
- Design Compiler指南——预综合过程
- Oracle数据库-主键(primary key)、外键(foreign key)、候选键(candidate key)、超键(super key)和references总结...
- 【linux命令】Centos下如何匹配内容在哪个文件中
- linux shell中的流编辑器sed的使用
- 如何检测圣诞树? [关闭]
- 语音识别技术分析:语音变成文字其实没有那么神秘
- Java性能调优的11个实用技巧
- 618号外:MS08067安全实验室也做安全培训了
- C语言经典例70-编写求字符串长度函数
- uncode,utf8编码的文章
- pos共识机制_PoW与PoS共识机制的优缺点介绍
- DRM驱动(六)之atomic_check
- H3C交换机命名与板卡命名
- stable-baselines3学习之Logger
- 指针与const 深析
- 品达物流TMS项目_第11章 TMS司机端、快递员端开发