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的配置相关推荐

  1. linux下启动nfs服务,linux下Samba服务和NFS服务配置的方法

    linux下Samba服务和NFS服务配置 一.Samba服务配置过程 samba的功能很简单,就是为了使linux和windows之间能够实现共享.并且利用samba搭建文件服务器,不仅比windo ...

  2. CenOS6 nginx+pxe+tftpd+samba/nfs+dhcpd 无盘安装windows  linux

    CenOS6 nginx+pxe+tftpd+samba/nfs+dhcpd 无盘安装windows & linux 参考文档: http://www.debian-administratio ...

  3. Linux就该这么学第十三节课学习心得

    9.1 配置网卡服务 9.1.1 配置网卡参数 截至目前,大家已经完全可以利用当前所学的知识来管理Linux系统了.当然,大家的水平完全可以更进一步,当有朝一日登顶技术巅峰时,您一定会感谢现在正在努力 ...

  4. 《Linux就该这么学》读书笔记

    开源文档地址: https://www.linuxprobe.com/docs/LinuxProbe.pdf 对linux感兴趣的小伙伴可以移步到我的专栏:https://blog.csdn.net/ ...

  5. Linux就该这么学--第五期 学习笔记

    第一节:基础 <Linux就该这么学>第二期视频 Linux就该这么学第5期第二节: ------------ 你的价值:你对公司做出的共享和你的不可替代性 ------------ 瑞尔 ...

  6. 《Linux就该这么学》—非常适合linux技术学习的入门好书

    <Linux就该这么学>是一本注重于实用性的Linux系统技术自学书籍,自基础篇公布后网站每天日常阅读量已经超过10000多人,25万多名忠实粉丝读者,是目前国内人气增速最快的IT书籍.您 ...

  7. 在Linux下轻松玩转Samba服务器

    一.samba概念和功能 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Mi ...

  8. Linux实战教学笔记22:企业级NFS网络文件共享服务

    第二十二节 企业级NFS网络文件共享服务 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载 ...

  9. Linux服务器之Samba匿名访问配置

    摘要:Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共 ...

最新文章

  1. C语言网络编程:socket函数
  2. 评定星级的前端显示js
  3. osmnx 应用 可视化两张图异同的点和边
  4. CRM订单状态的Open, In process和Completed这些条目是从哪里来的
  5. Design Compiler指南——预综合过程
  6. Oracle数据库-主键(primary key)、外键(foreign key)、候选键(candidate key)、超键(super key)和references总结...
  7. 【linux命令】Centos下如何匹配内容在哪个文件中
  8. linux shell中的流编辑器sed的使用
  9. 如何检测圣诞树? [关闭]
  10. 语音识别技术分析:语音变成文字其实没有那么神秘
  11. Java性能调优的11个实用技巧
  12. 618号外:MS08067安全实验室也做安全培训了
  13. C语言经典例70-编写求字符串长度函数
  14. uncode,utf8编码的文章
  15. pos共识机制_PoW与PoS共识机制的优缺点介绍
  16. DRM驱动(六)之atomic_check
  17. H3C交换机命名与板卡命名
  18. stable-baselines3学习之Logger
  19. 指针与const 深析
  20. 品达物流TMS项目_第11章 TMS司机端、快递员端开发

热门文章

  1. 怎样学习一门编程语言
  2. (部署新java程序,程序报错,需copy的一个包)——java使用siger 获取服务器硬件信息...
  3. SecureCRT 设置 鼠标右键
  4. 信用评分模型建模流程
  5. GBase 8a技术特性-集群架构
  6. 操作系统:进程的基本状态及其转换
  7. 伦敦城市大学卡斯商学院MBA招生要求
  8. 二叉树的非递归遍历(前序中序后序非递归C语言)
  9. Spring AOP切面实现:异常处理
  10. kmalloc执行过程