十四周二次课(3月27日)

14.4 exportfs命令

14.5 NFS客户端问题

15.1 FTP介绍

15.2/15.3 使用vsftpd搭建ftp

14.4 exportfs命令

exportfs命令和跟nfs-utils包安装时,一起安装的

常用选项

-a 全部挂载或者全部卸载

-r 重新挂载

-u 卸载某一个目录

-v 显示共享目录

umount /mnt //卸载挂载的目录

当改变/etc/exports配置文件后,使用exportfs命令挂载不需要重启nfs服务。

在服务端上执行:

vim /etc/exports //增加

/tmp/ 192.168.37.100(rw,sync,no_root_squash)

exportfs -arv //不用重启nfs服务,配置文件就会生效

在客户端执行:

showmount -e 192.168.37.101

客户端挂载nfs

mount -t nfs 192.168.37.101:/tmp/ /mnt

如果挂载时有错误提示,可以通过cat /var/log/messages | grep mount来查看日志文件,找出错误日志内容

ls /mnt/ //mnt目录就是服务端的tmp目录

vim /mnt/1212.txt //创建一个文件

ls -l /mnt //查看1212.txt文件,属主和属组都是root

服务端:ls -l /tmp

1212.txt文件在客户端和服务端显示的属主和属组都是root,这是因为在/etc/exports里增加的一条/tmp/ 192.168.37.100(rw,sync,no_root_squash)里的权限选项里有no_root_squash

14.5 NFS客户端问题

NFS 4版本会有该问题

客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody

客户端挂载时加上 -oremount,nfsvers=3 //remount:不卸载,重新挂载;nfsvers=3:nfs版本指定为3;另外还有-o nolock:不加锁

客户端和服务端都需要

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

15.1 FTP介绍

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

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

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

Centos上用rz,sz命名传输文件,文件大小超过4G就无法使用了

centos上自带vsftpd。安装yum install -y vsftpd

  • 建立账号和相关的配置文件

vsftpd默认可以支持使用系统账号登陆,但那样不×××装,所以建议你使用虚拟账号登陆。

useradd -s /sbin/nologin virftp //建立与虚拟用户相关联的系统用户

vim /etc/vsftpd/vsftpd_login //建立与虚拟用户相关的文件。内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行,这个文件是自定义的

testuser1

aminglinux

chmod 600 /etc/vsftpd/vsftpd_login //设置600权限

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 testuser1 //加入如下内容,这个用户配置文件的名字要与上面创建的虚拟用户相关的文件vsftpd_login,里面创建的用户名保持一致

local_root=/home/virftp/testuser1 //定义虚拟用户testuser1的家目录

anonymous_enable=NO //用来限制是否允许匿名用户登陆(NO:表示不允许)

write_enable=YES //是否允许可写

local_umask=022 //定义创建新文件目录的权限,和系统umask保持一致

anon_upload_enable=NO //表示是否允许匿名用户上传文件

anon_mkdir_write_enable=NO //表示是否允许匿名用户创建目录,并且写

idle_session_timeout=600 //连接ftp后空闲时间段,连接超时时间,单位是秒

data_connection_timeout=120 //数据传输超时时间,单位是秒

max_clients=10 //最大的客户端数量

mkdir /home/virftp/testuser1 //创建虚拟用户的家目录

touch /home/virftp/testuser1/aming.txt //创建一个文件

chown -R virftp:virftp /home/virftp //修改权限,属主和属组都是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

Centos7为64为系统,所以库文件路径为/lib64/security/pam_userdb.so(32位系统的库文件路径为/lib/security/pam_userdb.so)

修改主配置文件: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

在最后再增加如下内容

chroot_local_user=YES

guest_enable=YES //定义guest_username是否生效

guest_username=virftp //guest定义虚拟用户映射到哪个系统用户

virtual_use_local_privs=YES //告诉服务现在用的是虚拟用户,虚拟用户要映射到一个系统用户

user_config_dir=/etc/vsftpd/vsftpd_user_conf //定义虚拟用户配置所在的路径

allow_writeable_chroot=YES

systemctl start vsftpd //启动vsftpd服务

为FTP服务开启防火墙

firewall-cmd --add-service=ftp --permanent

firewall-cmd --reload

关闭selinux

senenforce 0

  • 测试ftp

客户端安装ftp客户端软件:yum install -y lftp

lftp ftpuser1@192.168.37.101 //可以看到在服务端创建的/home/virftp/testuser1/下的文件,属主和属组都是virftp

输入?,可以看到支持的命令

get aming.txt //get到当前目录下,quit:退出

查看文件:ls -lt |head

如果遇到问题请检查日志文件:/var/log/ messages和/var/log/secure

  • 用xshell来实现跟ftp类似的功能

新建一个会话,协议选sftp,主机输入服务端的ip

连接,输入登陆centos7的用户名和密码,进入后默认是在root下

可以运行ls 、cd的命令,也可以用ftp支持的命令,如get

get user.sql

Received下来后文件的保存的路径设置

在本地文件夹里可以定义的

还有一种方法是采用xftp插件

Ctrl+alt+f

点下载xftp