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

原创
2018/06/22 10:49
阅读数 142

1. exportfs命令

一般情况下重启服务器上nfs服务时,需把客户端上的挂载先卸载掉,以免进程后面杀不掉。当客户端服务器很多时,操作起来就比较麻烦。此时可以使用exportfs命令重新加载下。

exportfs命令:

是随nfs-utils 一起安装的

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

常用选项:

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

-r 重新挂载

-u 卸载某一个目录

-v 显示共享目录

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

以下操作在服务端上

vim /etc/exports //增加

/tmp/ 172.20.6.240(rw,sync,no_root_squash) //把/tmp目录单独共享给172.20.6.240这个主机ip

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

172.20.6.240客户端机器上操作:

showmount -e 192.168.89.51 //查看有权限的共享目录

mount -t nfs 192.168.89.51:/tmp /mnt //把tmp目录挂载到/mnt下

2. NFS客户端问题:

客户端文件属主属组nobody:

NFS 4版本会有该问题

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

解决方法:

1. 客户端挂载时加上 -o nfsvers=3

mount -t nfs -oremount,nfsvers=3 192.168.89.51:/home/nfstestdir /mnt //已经挂载不想卸载时可以-oremount 重新挂载。

2. 客户端和服务端都需要

vim /etc/idmapd.conf //

把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务(CentOS 6以上系统重启rpcbind服务)

3. FTP介绍

ftp应用环境:

  • 一般情况我们和linux服务器数据传输时会用到rz/sz命令;
  • rz/sz命令传输大文件,比如超过4G时就没办法用了;
  • 有跳板机的时候,在用rz/sz传输数据时也会出现问题;
  • 在linux上搭建一个ftp服务,然后在主机上装个ftp客户端,就可以和linux服务器传输文件。这就是ftp服务器

ftp介绍:

  • FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
  • FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
  • 小公司用的多,大企业不用FTP,因为不安全
  • 大型企业一般使用自动化发布工具

4. vsftpd搭建ftp

centos上自带的vsftpd服务:

yum install -y vsftpd

安装vsftpd软件包;

useradd -s /sbin/nologin virftp

创建一个ftp映射的账户;

创建虚拟用户密码文件:

vim /etc/vsftpd/vsftpd_login

新建一个ftp虚拟用户文件,内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行

user1

1%6eEHPu9

chmod 600 /etc/vsftpd/vsftpd_login

设置权限600;

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

保存虚拟帐号和密码的文件无法被系统帐号直接调用。我们需要使用db_load 命令生成db库文件

-T允许应用程序能够将文本文件转译载入进数据库。

-t hash使用hash码加密

-f 指定包含用户名和密码文本文件。此文件格式要示:奇数行用户名、偶数行密码

创建和用户对应的配置文件:

mkdir /etc/vsftpd/vsftpd_user_conf

创建与虚拟账号相关的目录以及配置文件

用户的配置文件是单独存在的,每一个用户都有一个自己的配置文件,文件名和用户名一致

cd /etc/vsftpd/vsftpd_user_conf

vim user1 //加入如下内容

local_root=/home/virftp/user1

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

其中local_root:为user1账号的家目录;anonymous_enable:用来限制是否允许匿名账户登录(若为NO,表示不允许匿名账号登录);write_enable=YES:表示可写;local_umask:指定umask值;anon_upload_enable:表示是否允许匿名账号上传文件;anon_mkdir_write_enable:表示是否允许匿名账号可写;idle_session_timeout:表示空闲多长时间超时;data_connection_timeout=120如果服务器与客户端的数据联机已经成功建立 (不论主动还是被动联机),但是可能由于线路问题导致 120 秒内还是无法顺利的完成数据的传送,那客户端的联机就会被我们的 vsftpd 强制剔除;max_clients:有多少 client 可以同时连上 vsftpd;

 

在virftp家目录下创建以用户名命名的家目录:

mkdir /home/virftp/user1

touch /home/virftp/user1/gavin.txt

chown -R virftp:virftp /home/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

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

修改全局配置文件/etc/vsftpd/fsftpd.conf:

修改用户配置文件后还不可用,还需要修改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

systemctl start vsftpd //启动vsftpd服务

ftp监听21端口

测试ftp:

linux中ftp客户端为lftp;

yum install -y lftp

lftp user1@127.0.0.1

执行命令ls,看是否正常输出

? 可以查看支持的命令,一般put和get用的比较多

get会把文件下载到当前目录

若不正常查看日志/var/log/messages和/var/log/secure

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

ftp://192.168.89.51 通过浏览器访问

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部