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