使用Samba或NFS实现文件共享

本文介绍了在Linux系统中如何使用Samba和NFS实现文件共享。首先讲述了Samba服务的安装、配置和安全注意事项,包括删除不必要的配置参数,设置账户信息,创建共享目录,调整SELinux策略。然后,详细讲解了NFS服务的配置,包括共享目录的设置、权限管理以及NFS客户端的挂载。最后提到了AutoFs自动挂载服务,以解决频繁手动挂载的不便,实现按需挂载,节省资源。
摘要由CSDN通过智能技术生成

SAMBA文件共享服务

在讲解FTP文件传输服务确实可以让主机之间的文件传输变得简单方便,但是FTP协议的本质是传输文件,而非共享文件,因此要想通过客户端直接在服务器上修改文件内容还是一件比较麻烦的事情。

首先需要先通过软件仓库来安装Samba服务程序(Samba服务程序的名字也恰巧是软件包的名字),顺手再安装一个samba-client软件包,这是用于一会测试共享目录的客户端程序

[root@linuxprobe ~]# dnf install samba samba-client

安装完毕后打开Samba服务程序的主配置文件,好在参数并不多,只有37行。其中第17至22行代表共享该登录用户的家目录内容,虽然某些情况下可以更方便的共享文件,但这个默认操作着实有些危险,建议删除掉不要共享;而24-29行是用SMB协议共享本地的打印机设备,方便局域网内的用户可以远程使用,当前我们没有打印机设备,因此也删除掉不共享;最后的31至37行依然为共享打印机设备的参数,同样建议予以删除。

[root@linuxprobe ~]# vim /etc/samba/smb.conf
  1 # See smb.conf.example for a more detailed config file or
  2 # read the smb.conf manpage.
  3 # Run 'testparm' to verify the config is correct after
  4 # you modified it.
  5 
  6 [global]
  7         workgroup = SAMBA
  8         security = user
  9 
 10         passdb backend = tdbsam
 11 
 12         printing = cups
 13         printcap name = cups
 14         load printers = yes
 15         cups options = raw
 16 #以下全部删除
 17 [homes]
 18         comment = Home Directories
 19         valid users = %S, %D%w%S
 20         browseable = No
 21         read only = No
 22         inherit acls = Yes
 23 
 24 [printers]
 25         comment = All Printers
 26         path = /var/tmp
 27         printable = Yes
 28         create mask = 0600
 29         browseable = No
 30 
 31 [print$]
 32         comment = Printer Drivers
 33         path = /var/lib/samba/drivers
 34         write list = @printadmin root
 35         force group = @printadmin
 36         create mask = 0664
 37         directory mask = 0775

对着Samba服务的主配置文件一顿删减操作,最后的有效配置参数只剩下了8行。所剩不多的参数中,我们还能继续删除不需要的参数,例如5-8行参数中所提到的cups全称叫做Common UNIX Printing System,中文名叫通用UNIX打印系统服务,依然是用于打印机或打印服务器的,继续予以删除。

[root@linuxprobe ~]# cat /etc/samba/smb.conf
  1 [global]
  2         workgroup = SAMBA
  3         security = user
  4         passdb backend = tdbsam
  5#以下删除
  6         printing = cups
  7         printcap name = cups
  8         load printers = yes
  8         cups options = raw

注意:删除掉不需要的代码是常规操作,能够让服务程序“轻装前进”,关闭非必要功能,实现更好的性能,把硬件资源用到刀刃上。其次还能让运维人员更好的找到所需的代码,对比一百行代码来讲,从十行代码中找到一个参数要容易很多。

参数 作用
[global] 全局参数
workaroup = SAMBA 工作组名称
security = user 安全验证的方式,总共有4种)
passdb backend = tdbsam 定义用户后台的类型,总共有3种
printing = cups 打印服务协议
printcap name = cups 打印服务名称
load printers = yes 是否加载打印机
cups options = raw 打印机的选项
[homes] 共享名称
comment = Home Directories 描述信息
valid users= %S,%D%w%S 可用账户
browseable=No 指定共享信息是否在”网上邻居“中可见
read only = No 是否只读
inherit acls = Yes 是否继承访问控制列表
[printers] 共享名称
comment = All Printers 描述信息
path = /var/tmp 共享路径
printable = Yes 是否可打印
create mask = 0600 文件权限
browseable = No 指定共享信息是否在"网上邻居"中可见
[print$] 共享名称
comment = Printer Drivers 描述信息
path=/var/lib/samba/drivers 共享路径
write list= @printadmin root 可写入文件的用户列表
force group = @printadmin 用户组列表
create mask = 0664 文件权限
directory mask = 0775 目录权限

1.#share:来访主机无需验证密码口令;比较方便,但安全性较差
2.#user:需验证来访主机提供的口令后才可以访问;提高了安全性
3.#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
4.#domain:使用域控制器进行身份验证

1.#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
2.#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
3.#ldapsam:基于LDAP服务进行账户验证

全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效。创建共享资源的方法很简单,只要将表中的参数写入到Samba服务程序的主配置文件中,然后重启该服务即可。

参数 作用
[database] 共享名称为database
comment = Do not arbitrarily modify the database file 警告用户不要随意修改数据库
path = /home/database 共享目录为/home/database
public = no 关闭”所有人可见“
writable = yes 允许写入操作

创建用于访问共享资源的账户信息。在RHEL 8系统中,Samba服务程序默认使用的是用户口令认证模式(user)。这种认证模式可以确保仅让有密码且受信任的用户访问共享资源,而且验证过程也十分简单。不过,只有建立账户信息数据库之后,才能使用用户口令认证模式。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。

pdbedit命令用于管理samba服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。

参数 作用
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)
[root@linuxprobe ~]# pdbedit -a -u linuxprobe
new password:此处输入该账户在Samba服务数据库中的密码
retype new password:再次输入密码进行确认
Unix username:        linuxprobe
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-650031181-3622628401-3290108334-1000
Primary Group SID:    S-1-5-21-650031181
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值