天天看点

exportfs命令&NFS客户端问题&FTP介绍&使用vsftpd搭建ftp

14.4 exportfs命令

nfs服务不能随便重启,否则可能导致客户端的nfs服务被挂起,因此可以使用exportfs命令在不重启服务的前提下更新配置文件。

常用选项

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

• -r 重新挂载

• -u 卸载某一个目录

• -v 显示共享目录

效果测试

修改服务端配置文件
vim /etc/exports
新增
/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)      
更新配置文件(重新挂载)
[root@linux-5 ~]# exportfs -arv
exporting 192.168.133.0/24:/tmp
exporting 192.168.88.0/24:/home/nfstestdir      
在客户端查看权限
[root@linux-10 ~]# showmount -e 192.168.88.5
Export list for 192.168.88.5:
/tmp             192.168.133.0/24
/home/nfstestdir 192.168.88.0/24      

注:客户端重启后,要重新挂载共享目录

14.5 NFS客户端问题

NFS 4版本会出现一个问题(centos6较为常见),客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody

针对上述问题,有两种解决方案

第一种:

客户端挂载时加上 -o nfsvers=3(采用3版本的nfs)

第二种:

修改配置文件 vim /etc/idmapd.conf

把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com可以随意定义),然后再重启rpcidmapd服务(centos7中为rpcbind)

15.1 FTP介绍

日常使用rz,sz命令进行文件互传时会有很多限制,比如传输大小不能超出4G,不能给云端主机传输文件,针对上述问题,可通过在服务端搭建ftp服务器解决

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

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

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

15.2/15.3 使用vsftpd搭建ftp

centos自带ftp服务的软件包是vsftpd,直接下载安装即可。

安装vsftpd软件包

yum install -y vsftpd      

创建登录ftp的用户

useradd -s /sbin/nologin virftp   //不允许登录系统,用于给虚拟用户做映射      

vsftpd软件包是可以使用系统级别的用户,假设创建了一个普通用户lem,设置一个密码,这时候就可以用vsftpd启动这个服务,然后用user1这个用户去登陆,登录的形式为ftp,登录进去后会进入到lem这个用户的家目录下,但这样操作会存在安全隐患。

为了解决上述隐患,我们可以给ftp设置一个虚拟用户,虚拟用户映射成系统中的一个普通用户(也可以映射多个虚拟用户),这个用户即使给了用户和密码你也是没有办法去通过ssh登录到服务器的机器,这样就相对安全了很多。

编辑虚拟用户的密码文件

vim /etc/vsftpd/vsftpd_login //奇数行为用户名,偶数行为密码,多个用户就写多行
ftpuser
123456      

密码文件授权

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      

在目录下创建虚拟用户配置文件

vim ftpuser  //虚拟用户的配置文件的文件名需要与密码文件中创建的用户的名字一致

local_root=/home/virftp/ftpuser  //定义虚拟用户家目录
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                     //最大客户端数      

创建虚拟用户家目录

mkdir /home/virftp/ftpuser      

在家目录下创建测试文件

touch /home/virftp/ftpuser/test.txt      

修改用户权限

chown -R virftp:virftp /home/virftp      

将权限做一个修改,因为最后映射成virftp 这个用户,若virftp这个用户没有读的权力那就是错误的,无法正常的去上传和下载

定义密码文件的所在位置

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      

这是一个用来认证的文件,在登录FTP需要有一个认证的过程,认证的过程需要告诉它,通过什么样的形式去认证,认证的时候去哪里找这个密码库

注:32位的centos系统的文件名应为lib32

编辑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
  
在文件最下方增加如下内容
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      

启动vsftpd服务

systemctl start vsftpd      

查看监听端口

[root@linux-5 vsftpd_user_conf]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name         
tcp6       0      0 :::21                   :::*                    LISTEN      3713/vsftpd      

监听端口为21

ftp测试

Windows端

Windows可以使用filezilla客户端开源软件,十分方便

exportfs命令&NFS客户端问题&FTP介绍&使用vsftpd搭建ftp

Linux端

Linux为了方便测试采用lftp

安装lftp包

[root@linux-5 ~]# yum -y install lftp      

连接FTP服务器

[root@linux-5 ~]# lftp [email protected]
口令: 
lftp [email protected]:~> ls
-rw-r--r--    1 0        0               0 Jul 02 16:20 test.txt      
lftp [email protected]:/> get test.txt
lftp [email protected]:/> quit
[root@linux-5 ~]# ls
anaconda-ks.cfg  lianxi         lianxi.tar.bz2  mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz  test.txt.bz2  桌面云配置过程.txt
fstab            lianxi.tar.bz  lianxi.zip      test.txt      

继续阅读