【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp

一、exportfs命令

exportfs 命令用来管理当前NFS共享的文件系统列表


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


以下操作在服务端上:

编辑文件并增加以下内容:
vim /etc/exports 
/tmp/ 172.16.17.0/24(rw,sync,no_root_squash)

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


再执行一下以下这个命令,不用重启nfs服务,配置文件就会生效:

exportfs -arv 

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


 以下操作在客户端:
 将服务端的/tmp/目录挂载到  客户端的/mnt/下:
mount -t nfs  172.16.17.71:/tmp/  /mnt/

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


然后在客户端上新建个nfs.txt文件:

vim /mnt/nfs.txt

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp

可以对比看一下,客户端的/mnt/目录跟服务端的/tmp/目录都是一样的:

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


二、NFS客户端问题


客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody(NFS 4版本会有该问题

如何解决呢?这个就在客户端挂载时加上 -o nfsvers=3:

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


客户端和服务端都需要
vim /etc/idmapd.conf 
把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd(rpcbind)服务

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp



三、FTP介绍


1、FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。


2、 FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。


3、小公司用的多,大企业不用FTP,因为不安全



四、使用vsftpd搭建ftp

centos上自带vsftpd,使用命令安装:yum install -y vsftpd 

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


创建普通用户:
useradd -s /sbin/nologin virftp

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


虚拟用户的密码文件创建,定义用户名和密码,内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行:
 vim /etc/vsftpd/vsftpd_login 

testuser1
222222

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


赋予权限:
chmod 600 /etc/vsftpd/vsftpd_login

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


把文本的密码文件转换成计算机识别的二进制文件:

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

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


创建虚拟用户的配置文件所在的目录并进入到这个目录:
mkdir /etc/vsftpd/vsftpd_user_conf 

cd /etc/vsftpd/vsftpd_user_conf

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


创建个新文件并加入如下内容

 vim testuser1 :


local_root=/home/virftp/testuser1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


创建虚拟用户的家目录并创建amo.txt文件并更改权限:

mkdir /home/virftp/testuser1
 touch /home/virftp/testuser1/amo.txt
 chown -R virftp:virftp /home/virftp

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


在最前面加上,定义用户的密码文件在哪里:
 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

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


编辑vsftpd.conf文件:

vim /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

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


 再增加如下内容:


chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


启动vsftpd服务,查看进程和端口


systemctl start vsftpd 

ps aux|grep vsftp

netstat -lntp

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp



测试ftp:

安装一个linux上的lftp客户端:

yum install lftp -y


使用命令并输入密码,执行命令ls,看是否正常输出,若不正常查看日志/var/log/messages和/var/log/secure

lftp [email protected]

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


我们使用命令  get   amo.txt 把它下载下来:

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


然后退出来查看当前路径,就可以看到这个amo.txt文件了:

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


 windows下安装filezilla客户端软件,进行测试

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp


再到linux端查看/home/virftp/testuser1/

【NFS环境搭建】exportfs命令、NFS客户端问题、FTP介绍和使用vsftpd搭建ftp

结论:OK