15.2/15.3 使用vsftpd搭建ftp
NFS服务不能随便重启,在重启前必须把正在远程读写的目录挂载卸掉
停止挂载出现busy情况 ①退出/mnt目录 再umount /mnt/
②懒汉模式 umount -l /mnt/
如果有几十台机器在挂载,可以通过exportfs命令简化
服务器端上exportfs -arv显示出共享目录,再到客户端上执行showmount命令,发现无需重启nfs服务,/tmp/文件夹也被共享出去了
在客户端上把服务器端的/tmp/挂载到/mnt/目录下mount -t nfs 192.168.242.128:/tmp/ /mnt/被拒绝
发现是端口号超过1024,man exports定义中发现当端口号高于1024时会被认为非法,此时需要在服务器端的/etc/exports文件中加入insecure选项,并重启nfs服务:service nfs restart
参见: https://blog.csdn.net/kelvindream/article/details/53858214
还是拒绝,后面网上搜了加了一个规则no_subtree_check,网段开放到192.168.242.*如下图所示
无需重启nfs服务,再次服务器端执行exportfs -arv,客户端showmount -e 192.168.242.128:/tmp/ /mnt/
把服务器端/tmp/挂载到客户端/mnt/下:mount -t nfs 192.168.242.128:/tmp/ /mnt/
这时发现两者是同步的,客户端也可以读写/tmp/目录了(挂载于客户端的/mnt/目录下)
测试:
在客户端下的/mnt/创建一个新文件,同步成功,服务器端也有test.txt,在/etc/exports文件中加入 no_root_squash不限制root用户选项时:达到的效果是在客户端上创建的文件也是root用户主和组,通常情况下不限制
NFS客户端问题
如果出现上述问题,(客户端挂载后,不管是普通用户还是root用户,创建新用户时所属主和组都为nobody)解决办法
①在挂载选项中加入-o nfsvers=3如果已经挂载需要umount 再加上
②编辑 /etc/idmapd.conf找到Domain,把注释符#去掉,后面可以自定义,重启rpcidmapd服务,在CentOS7中没有该服务,重启rpcbind服务即可
FTP介绍
vsftpd搭建FTP
给ftp设置一个虚拟用户,映射成系统的一个普通用户(vsftpd服务支持系统用户)
①添加一个用户: useradd -s (指定shell) /sbin/nologin (处于安全,该用户不让登录系统)virftp(可以随意取)
②给虚拟用户定义用户名和密码:vim /etc/vsftpd/vsftpd_login(其中奇数行是用户名,偶数行是密码)
③更改密码文件权限:chmod 600 /etc/vsftpd/vsftpd_login
④把文本密码文件vsftpd_login转换成计算机可识别的二进制文件:
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
⑤创建虚拟用户配置文件所在的目录(自定义)mkdir /etc/vsftpd/vsftpd_user_conf ,进入目录并定义配置文件,和之前定义的用户名保持一致(如testuser1,testuser2)
⑥加入如下配置内容
local_root:定义虚拟用户的家目录
⑦创建虚拟用户的家目录:mkdir /home/virftp/testuser1; touch liut.txt
⑧修改权限:chown -R virftp:virftp /home/virftp
⑨定义密码文件位置:vim /etc/pam.d/vsftpd加上两行 (在登录ftp时认证用户名和密码的存放处)
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
查看 /lib64/security/pam_userdb.so 是否存在
⑩编辑vsftpd的主配置文件
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
最后启动vsftpd服务
监听端口ftp 21, ssh 22 telnet 23
测试:
在windows上安装filezilla client如下图,不要安装filezilla server(搭建服务用的)
输入Linux主机IP,用户名,密码,端口22,如下图建立连接成功
在linux上使用lftp测试:yum install -y lftp
lftp [email protected]结果报错
意思是需要到ftp虚拟用户配置文件中找到带有vim testuser1字样的行,删除(虚拟用户配置文件路径为/etc/vsftpd/vsftpd_user_conf/testuser1)
如上图所示,测试成功,“?”可查看所支持的命令
如何使用Xshell实现FTP功能
①sftp
如下图设置,并ssh选项中设置默认本地/远程传送路径
登录测试:默认root用户和密码
get测试成功
②在Xshell页面Ctrl Alt f 弹出需要安装xftp,下载安装,再输入root用户名和密码出现如下界面,连接建立成功