14.4 exportfs命令

当我们修改nfs的配置文件exports后,需要重新启动nfs服务才能让配置文件生效。但是很多情况下nfs的客户端还挂载着服务端的共享目录,如果重启就会影响客户端的使用。

如果把客户端卸载,再修改配置文件,再重启nfs,客户端再重新挂载,客户端很多的情况下,这样操作会很繁琐。

我们可以使用exportfs命令,可以不用卸载客户端和nfs服务不停止的情况下,重载配置文件。

//exportfs命令常用选项
-a:表示全部挂载或者全部卸载
-r:表示重新挂载
-u:表示卸载某一个目录
-v:表示显示共享目录

在服务端上修改配置文件:

vim /etc/exports
/tmp/ 192.168.87.130(rw,sync,no_root_squash) //加入这一行配置,增加共享目录/tmp/

执行exportfs命令:重新加载配置文件

exportfs -arv //重新加载服务

在客户端查看共享目录:

showmount -e 192.168.87.128

最后把新增的共享目录,在客户端上挂载就可以了:

mount -t nfs -o 192.168.87.128:/tmp  /mnt/  //-t挂载类型,-o nolock不加锁

14.5 NFS客户端问题

NFS4通常有这个问题:客户端挂载共享目录后,不管是root用户还是系统普通用户,在共享目录里创建目录和文件时的主和组都是nobody

解决方案1:客户端挂载目录时,加上-o和nfsvers=3

mount -t nfs -o remount,nfsvers=3 192.168.87.128:/tmp/ /mnt/

解决方案2:修改服务端和客户端的配置文件:

vim /etc/idmapd.conf
#Domain = local.domain.edu 改为 Domain = xxx.com //xxx.com 随意定义
然后再重启rpcidmapd服务

15.1 FTP介绍

FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。小公司用的多,大企业不用FTP,因为不安全。

用rz和sz传文件,文件大小超过4G就会出现问题。

15.2/15.3 使用vsftpd搭建ftp

安装vsftpd:

yum install -y vsftpd

vsftpd支持用linux系统用户登录,但是这样很不安全,容易暴露系统用户和密码。

我们创建虚拟用户,并映射到系统普通用户来使用vsftpd:

useradd -s /sbin/nologin virftp  //创建系统普通用户
vim /etc/vsftpd/vsftpd_login  //创建虚拟用户和密码的文件,奇数行为用户名,偶数行为密码,多个用户就写多行
user1
123456
user2
888888

chmod 600 /etc/vsftpd/vsftpd_login //改权限

将文本的密码文件装换成二进制的密码文件:增加安全性

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

创建虚拟用户的目录和配置文件:

mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
vim user1
##配置文件内容
local_root=/home/virftp/user1   //为虚拟用户testuser1的家目录(读取文件所在处)
anonymous_enable=NO  //  是否允许匿名用户
write_enable=YES    //是否可行
local_umask=022    //umask的值
anon_upload_enable=NO  //是否允许匿名用户上传文件
anon_mkdir_write_enable=NO  //是否允许匿名用户可写、创建用户
idle_session_timeout=600      //连接空闲超时时间,超时就重新登录
data_connection_timeout=120 //传输文件超时时间
max_clients=10    //最大客户端数

创建虚拟用户testuser1的家目录:

mkdir /home/virftp/user1

创建一个测试文件

touch /home/virftp/user1/abc.txt

修改/home/virftp/的主和组:

chown -R virftp:virftp /home/virftp //改家目录的主和组为virftp

定义认证的文件/etc/pam.d/vsftpd:

vim /etc/pam.d/vsftpd     //添加下列内容,在最前面加上

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login   
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

##密码文件,centos7为64位系统,所以库文件路径为/lib64/security/pam_userdb.so,32位系统为:/lib/security/pam_userdb.so 这个文件一定要存在且写对,不然虚拟用户登录ftp服务时会认证失败

修改全局配置文件/etc/vsftpd/vsftpd.conf

将anonymous_enable=YES 改为 anonymous_enable=NO
将#anon_upload_enable=YES 改为 anon_upload_enable=NO 
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
再增加如下内容
chroot_local_user=YES
guest_enable=YES               //是否允许虚拟用户映射
guest_username=virftp                //这个就是虚拟用户映射到的系统用户virftp
virtual_use_local_privs=YES             //
user_config_dir=/etc/vsftpd/vsftpd_user_conf  //创建的虚拟用户的目录
allow_writeable_chroot=YES

启动服务

systemctl start vsftpd

测试: 可以在window下安装一个客户端软件:filezilla client