《Linux就该这么学》学习笔记——Day15

简介

本次课程讲解了两个章节的内容,一个是文件传输协议(File Transfer protocol,FTP)以及部署vsftpd服务程序及三种认证模式(匿名开放模式、本地用户模式、虚拟用户模式)的配置方法;另一个是文件共享Samba服务通过实验的方式部署文件共享服务并分别使用Windows系统和Linux系统访问共享的文件资源。

详情可参考:
第11章 使用Vsftpd服务传输文件
第12章 使用Samba或NFS实现文件共享

命令行详解可参考:
https://www.linuxcool.com

在Linux中,一切都是文件;配置系统服务就是修改对应服务的配置文件;
然后重启服务;还要将修改写入对应的配置文件去保证服务重启能够生效.

文件传输协议

FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。

FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。

FTP协议有下面两种工作模式。
主动模式:FTP服务器主动向客户端发起连接请求。
被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)。

vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。

yum install vsftpd 	#安装sftpd服务程序
iptables -F 		#清空iptables防火墙的默认策略
service iptables save	#保存当前已经被清理的防火墙策略状态

过滤vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v "#" /etc/vsftpd/vstpd.conf_bak > /etc/vsftpd/vsftpd.conf
cat /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #匿名公开模式
local_enable=YES	 #已本地用户身份访问
write_enable=YES	 #支持写入
local_umask=022			#反掩码格式:文件->644 目录->755
dirmessage_enable=YES	
xferlog_enable=YES		#支持日志
connect_from_port_20=YES#从端口20连接
xferlog_std_format=YES	#支持标准格式的日志
listen=NO				#不以独立运行的方式监听服务
listen_ipv6=YES			#支持ipv6
pam_service_name=vsftpd	#PAM模块名称
userlist_enable=YES	#支持"黑名单""死亡笔记"
tcp_wrappers=YES	#支持tcp_wrappers

vsftpd服务程序常用的参数以及作用:
参数 作用
listen=[YES|NO] 是否以独立运行的方式监听服务
listen_address=IP地址 设置要监听的IP地址
listen_port=21 设置FTP服务的监听端口
download_enable=[YES|NO] 是否允许下载文件
userlist_enable=[YES|NO]
userlist_deny=[YES|NO] 设置用户列表为“允许”还是“禁止”操作
max_clients=0 最大客户端连接数,0为不限制
max_per_ip=0 同一IP地址的最大连接数,0为不限制
anonymous_enable=[YES|NO] 是否允许匿名用户访问
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
anon_umask=022 匿名用户上传文件的umask值
anon_root=/var/ftp 匿名用户的FTP根目录
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO] 是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0 匿名用户的最大传输速率(字节/秒),0为不限制
local_enable=[YES|NO] 是否允许本地用户登录FTP
local_umask=022 本地用户上传文件的umask值
local_root=/var/ftp 本地用户的FTP根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,以确保安全
local_max_rate=0 本地用户最大传输速率(字节/秒),0为不限制

Vsftpd服务程序

vsftpd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上。

匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。
虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。

ftp是Linux系统中以命令行界面的方式来管理FTP传输服务的客户端工具。

yum install ftp

匿名访问模式

匿名开放模式可以结合防火墙管理工具(如Tcp_wrappers服务程序)将vsftpd服务程序允许访问的主机范围设置为企业内网以提供基本的安全性。

向匿名用户开放的权限参数以及作用:
参数 作用
anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的umask值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目录

vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=YES
2 anon_umask=022
3 anon_upload_enable=YES
4 anon_mkdir_write_enable=YES
5 anon_other_write_enable=YES

#重启vsftpd服务程序,让新的配置参数生效
systemctl restart vsftpd
#保证服务器重启能够正常提供传输服务
systemctl enable vsftpd

#确保文件权限正确
ls -ld /var/ftp/pub
drwxr-xr-x. 3 root root 16 Jul 13 14:38 /var/ftp/pub
chown -Rf ftp /var/ftp/pub
ls -ld /var/ftp/pub
drwxr-xr-x. 3 ftp root 16 Jul 13 14:38 /var/ftp/pub

#查询ftp SELinux权限
getsebool -a | grep ftp
#设置ftp SELinux权限 -P代表永久生效
setsebool -P ftpd_full_access=on

本地用户模式

本地用户模式使用的权限参数以及作用
参数 作用
anonymous_enable=NO 禁止匿名访问模式
local_enable=YES 允许本地用户模式
write_enable=YES 设置可写权限
local_umask=022 本地用户模式创建文件的umask值
userlist_deny=YES 启用“禁止用户名单”,名单文件为ftpusers和user_list
userlist_enable=YES 开启用户作用名单文件功能

#修改配置文件改为本地用户模式
vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
12 userlist_enable=YES

#重启vsftpd服务程序,让新的配置参数生效
systemctl restart vsftpd
#保证服务器重启能够正常提供传输服务
systemctl enable vsftpd

#注意userlist_deny=YES (default),因此userlist_enable开启时,默认userlist是黑名单
#vsftpd服务程序所在的目录中默认两个“用户名单”的文件(ftpusers和user_list)
#/etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers 

虚拟用户模式

第1步:创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码并进行加密操作.

db_load命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件,并且降低数据库文件的权限(避免其他人看到数据库文件的内容)

cd /etc/vsftpd/
vim vuser.list
1 zhangsan
2 redhat
3 lisi
4 redhat
db_load -T -t hash -f vuser.list vuser.db
file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
chmod 600 vuser.db
rm -f vuser.list

第2步:创建vsftpd服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。FTP服务用于存储文件的根目录指的是,当虚拟用户登录后所访问的默认位置。

useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot/
drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/
chmod -Rf 755 /var/ftproot/

第3步:建立用于支持虚拟用户的PAM文件。
新建一个用于虚拟用户认证的PAM文件vsftpd.vu,其中PAM文件内的“db=”参数为使用db_load命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀:

vim /etc/pam.d/vsftpd.vu
auth       required     pam_userdb.so db=/etc/vsftpd/vuser
account    required     pam_userdb.so db=/etc/vsftpd/vuser

第4步:在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称修改为vsftpd.vu,PAM作为应用程序层与鉴别模块层的连接纽带,可以让应用程序根据需求灵活地在自身插入所需的鉴别功能模块。当应用程序需要PAM认证时,则需要在应用程序中定义负责认证的PAM配置文件,实现所需的认证功能。

vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 guest_enable=YES
4 guest_username=virtual
5 allow_writeable_chroot=YES
#表示登录FTP服务器时是根据/etc/pam.d/vsftpd文件进行安全认证的
14 pam_service_name=vsftpd.vu

利用PAM文件进行认证时使用的参数以及作用:
参数 作用
anonymous_enable=NO 禁止匿名开放模式
local_enable=YES 允许本地用户模式
guest_enable=YES 开启虚拟用户模式
guest_username=virtual 指定虚拟用户账户
pam_service_name=vsftpd.vu 指定PAM文件
allow_writeable_chroot=YES 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求

第5步:为虚拟用户设置不同的权限。只需新建一个目录,在里面分别创建两个以zhangsan和lisi命名的文件,其中在名为zhangsan的文件中写入允许的相关权限(使用匿名用户的参数):

[root@linuxprobe ~]# mkdir /etc/vsftpd/vusers_dir/
[root@linuxprobe ~]# cd /etc/vsftpd/vusers_dir/
[root@linuxprobe vusers_dir]# touch lisi
[root@linuxprobe vusers_dir]# vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

然后再次修改vsftpd主配置文件,通过添加user_config_dir参数来定义这两个虚拟用户不同权限的配置文件所存放的路径。为了让修改后的参数立即生效,需要重启vsftpd服务程序并将该服务添加到开机启动项中:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s ‘/usr/lib/systemd/system/vsftpd.service’ '/etc/systemd/system/multi-user.target.wants/vsftpd.service

第6步:设置SELinux域允许策略,然后使用虚拟用户模式登录FTP服务器。相信大家可以猜到,SELinux会继续来捣乱。所以,先按照前面实验中的步骤开启SELinux域的允许策略,以免再次出现操作失败的情况:

[root@linuxprobe ~]# getsebool -a | grep ftp
ftp_home_dir –> off
ftpd_anon_write –> off
ftpd_connect_all_unreserved –> off
ftpd_connect_db –> off
ftpd_full_access –> off
ftpd_use_cifs –> off
ftpd_use_fusefs –> off
ftpd_use_nfs –> off
ftpd_use_passive_mode –> off
httpd_can_connect_ftp –> off
httpd_enable_ftp_server –> off
sftpd_anon_write –> off
sftpd_enable_homedirs –> off
sftpd_full_access –> off
sftpd_write_ssh_home –> off
tftp_anon_write –> off
tftp_home_dir –> off
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on

此时,不但可以使用虚拟用户模式成功登录到FTP服务器,还可以分别使用账户zhangsan和lisi来检验他们的权限。当然,读者在生产环境中一定要根据真实需求来灵活配置参数,不要照搬这里的实验操作。

[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): lisi
331 Please specify the password.
Password:此处输入虚拟用户的密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
550 Permission denied.
ftp> exit
221 Goodbye.
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): zhangsan
331 Please specify the password.
Password:此处输入虚拟用户的密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
257 “/files” created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.

TFTP简单文件传输协议

简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议。
采用的是UDP协议,占用的端口号为69,不需要客户端的权限认证,也就减少了无谓的系统和网络带宽消耗,因此在传输琐碎(trivial)不大的文件时,效率更高。

#安装tftp服务
yum install tftp-server tftp

在RHEL 7系统中,TFTP服务是使用xinetd服务程序来管理的。
xinetd服务可以用来管理多种轻量级的网络服务,而且具有强大的日志功能。简单来说,在安装TFTP软件包后,还需要在xinetd服务程序中将其开启,把默认的禁用(disable)参数修改为no:

vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no #开启服务
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
# 重启服务
systemctl restart xinetd
# 设置为开机启动
systemctl enable xinetd

有些系统的防火墙默认没有允许UDP协议的69端口,因此需要手动将该端口号加入到防火墙的允许策略中:

firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload

TFTP的根目录为/var/lib/tftpboot。
tftp命令中可用的参数以及作用:
命令 作用
? 帮助信息
put 上传文件
get 下载文件
verbose 显示详细的处理信息
status 显示当前的状态信息
binary 使用二进制进行传输
ascii 使用ASCII码进行传输
timeout 设置重传的超时时间
quit 退出

SAMBA文件共享服务

Samba服务程序现已经成为在Linux系统与Windows系统之间共享文件的最佳选择。

首先需要先通过Yum软件仓库来安装Samba服务程序:

yum insatll samba

Samba服务程序的主配置文件为/etc/samba/smb.conf
过滤并删除多余配置选项:

mv /etc/samba/smb.conf /etc/samba/smb.conf_bak
grep -v "#" smb.confbak | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
[global]
 workgroup = MYGROUP
 server string = Samba Server Version %v
 log file = /var/log/samba/log.%m
 max log size = 50
 security = user
 passdb backend = tdbsam

Samba服务程序中的参数以及作用:
[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服务程序的主配置文件包括全局配置参数和区域配置参数:
全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效。

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

第1步:创建用于访问共享资源的账户信息。在RHEL 7系统中,Samba服务程序默认使用的是用户口令认证模式(user)。只有建立账户信息数据库之后,才能使用用户口令认证模式。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。

pdbedit命令用于管理SMB服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。在第一次把账户信息写入到数据库时需要使用-a参数。

用于pdbedit命令的参数以及作用
参数 作用
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表

id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)

pdbedit -a -u linuxprobe
new password:此处输入该账户在Samba服务数据库中的密码
retype new password:再次输入密码进行确认
Unix username: linuxprobe
.................

第2步:创建用于共享资源的文件目录。
第3步:权限修改设置
文件访问权限和SELinux权限(SELinux域和SELinux安全上下文权限)

#文件权限
mkdir /home/database
chown -Rf linuxprobe:linuxprobe /home/database
#SELinux安全上下文权限
semanage fcontext -a -t samba_share_t /home/database
restorecon -Rv /home/database
#SELinux域策略
getsebool -a | grep samba
setsebool -P samba_enable_home_dirs on

第4步:在Samba服务程序的主配置文件中写入共享信息。

vim /etc/samba/smb.conf 
[global]
 workgroup = MYGROUP
 server string = Samba Server Version %v
 log file = /var/log/samba/log.%m
 max log size = 50
 security = user
 passdb backend = tdbsam
 load printers = yes
 cups options = raw
[database]
 comment = Do not arbitrarily modify the database file
 path = /home/database
 public = no
 writable = yes

第5步:重启smb服务(Samba服务程序在Linux系统中的名字为smb)并清空iptables防火墙。

#重启并设置开机启动服务
systemctl restart smb
systemctl enable smb
#清空iptables防火墙并保存
iptables -F
service iptables save

Windows挂载共享

Samba共享服务部署在Linux系统上,并通过Windows系统来访问Samba服务。

Samba服务器和Windows客户端使用的操作系统以及IP地址:
主机名称 操作系统 IP地址
Samba共享服务器 RHEL 7 192.168.10.10
Linux客户端 RHEL 7 192.168.10.20
Windows客户端 Windows 7 192.168.10.30

要在Windows系统中访问共享资源,只需在Windows的“运行”命令框中输入两个反斜杠,然后再加服务器的IP地址即可。

\\192.168.10.10

由于Windows系统的缓存原因,有可能您在第二次登录时提供了正确的账户和密码,依然会报错,这时只需要重新启动一下Windows客户端就没问题了(如果Windows系统依然报错,请检查上述步骤是否有做错的地方)。

Linux挂载共享

Samba服务程序还可以实现Linux系统之间的文件共享。
设置Samba服务程序所在主机(即Samba共享服务器)和Linux客户端使用的IP地址,然后在客户端安装支持文件共享服务的软件包(cifs-utils)。

Samba共享服务器和Linux客户端各自使用的操作系统以及IP地址
主机名称 操作系统 IP地址
Samba共享服务器 RHEL 7 192.168.10.10
Linux客户端 RHEL 7 192.168.10.20
Windows客户端 Windows 7 192.168.10.30

yum install cifs-utils

在Linux客户端,按照Samba服务的用户名、密码、共享域的顺序将相关信息写入到一个认证文件中。为了保证不被其他人随意看到,最后把这个认证文件的权限修改为仅root管理员才能够读写:

vim auth.smb
username=linuxprobe
password=redhat
domain=MYGROUP

chmod -Rf 600 auth.smb

在Linux客户端上创建一个用于挂载Samba服务共享资源的目录,并把挂载信息写入到/etc/fstab文件中,以确保共享挂载信息在服务器重启后依然生效:

mkdir /database
vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0
#检测挂载
mount -a

NFS网络文件系统

NFS(网络文件系统)服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。

首先请使用Yum软件仓库检查自己的RHEL 7系统中是否已经安装了NFS软件包:

yum install nfs-utils

第1步:为了检验NFS服务配置的效果,我们需要使用两台Linux主机(一台充当NFS服务器,一台充当NFS客户端)。

两台Linux主机所使用的操作系统以及IP地址
主机名称 操作系统 IP地址
NFS服务端 RHEL 7 192.168.10.10
NFS客户端 RHEL 7 192.168.10.20

另外注意清空NFS服务器上面iptables防火墙的默认策略,以免默认的防火墙策略禁止正常的NFS共享服务。

iptables -F
service iptables save

第2步:在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限。

mkdir /nfsfile
chmod -Rf 777 /nfsfile
echo "nfs test" > /nfsfile/readme

第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 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

注意:NFS客户端地址与权限之间没有空格。

vim /etc/exports
/nfsfile 192.168.10.*(rw,sync,root_squash)

第4步:启动和启用NFS服务程序。
注意在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。
因此,在启动NFS服务之前,还需要重启并启用rpcbind服务程序,并将这两个服务一并加入开机启动项中。

systemctl restart rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server

NFS客户端的配置步骤:
先使用showmount命令查询NFS服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。

showmount命令中可用的参数以及作用
参数 作用
-e 显示NFS服务器的共享列表
-a 显示本机挂载的文件资源的情况NFS资源的情况
-v 显示版本号

showmount -e 192.168.10.10
Export list for 192.168.10.10:
/nfsfile 192.168.10.*

[root@linuxprobe ~]# showmount -e 192.168.10.10
Export list for 192.168.10.10:
/nfsfile 192.168.10.*

然后在NFS客户端创建一个挂载目录。
使用mount命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。

mkdir /nfsfile
mount -t nfs 192.168.10.10:/nfsfile /nfsfile

[root@linuxprobe ~]# mkdir /nfsfile
[root@linuxprobe ~]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile

如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中:

vim /etc/fstab
192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0

AutoFs自动挂载服务

autofs自动挂载服务是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。
将挂载信息填入/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

yum install autofs

autofs服务程序的主配置文件中需要按照“挂载目录 子配置文件”的格式进行填写
挂载目录是设备挂载位置的上一级目录。
对应的子配置文件则是对这个挂载目录内的挂载设备信息作进一步的说明。子配置文件需要用户自行定义,文件名字没有严格要求,但后缀建议以.misc结束。

vim /etc/auto.master
/media /etc/iso.misc
/misc  /etc/auto.misc

在子配置文件中,应按照“挂载目录 挂载文件类型及权限 :设备名称”的格式进行填写。
如要把光盘设备挂载到/media/iso目录中,可将挂载目录写为iso,而-fstype为文件系统格式参数,iso9660为光盘设备格式,ro、nosuid及nodev为光盘设备具体的权限参数,/dev/cdrom则是定义要挂载的设备名称。
配置完成后将autofs服务程序启动并加入到系统启动项中:

vim /etc/iso.misc
iso   -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
systemctl start autofs 
systemctl enable autofs 

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值