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

笔记内容:

  • 14.4 exportfs命令
  • 14.5 NFS客户端问题
  • 15.1 FTP介绍
  • 15.2/15.3 使用vsftpd搭建ftp

笔记日期:

14.4 exportfs命令

这个exportfs命令会在安装nfs-util包时一起安装,当服务端需要停止NFS服务或者进行一些变动并重启时,其他挂载了共享目录的机器需要将这个挂载的目录卸载掉,不然的话服务进程就会出问题,单台机器我们可以使用unmnt命令去卸载,但是如果有几十台机器的话总不能一个个去unmnt吧,所以这个exportfs命令就是用来进行多台机器的卸载、重新挂载之类的操作的。

在服务端上执行exportfs -arv就能把共享目录卸载掉:

现在去客户端就会发现共享目录没有了:

然后再去服务端编辑/etc/exports文件增加以下内容,新增一个共享目录:

/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)

在服务端执行exportfs -arv重新挂载:

然后到客户端showmount一下:

可以看到无需重新启动NFS服务器也能挂载共享目录,这样避免重启服务带来的问题。

现在客户端就可以把共享目录挂载到本地的mnt上了:

mount -t nfs 192.168.77.128:/tmp/ /mnt/

现在客户端上的mnt就是服务端的tmp目录。

在客户端上的mnt目录创建一个文件,并在文件中随便写上一些内容:

vim /mnt/test.txt

创建好后ls -l /mnt/可以看到文件的属主和属组都是root:

而在服务端上的这个文件的属主和属组也是root:

这是因为在服务端上的exports配置文件中配置的是no_root_squash,所以在这个共享目录下的权限就是root,这就是no_root_squash这个选项的作用。

14.5 NFS客户端问题

NFS有一个偶尔可能会遇到的问题,在CentOS6的时候遇到的比较多,不过只有NFS 4版本才会有该问题,这个问题就是:客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组都为nobody。

也就是说即便在服务端的exports配置文件中定义的是no_root_squash选项,但是客户端在共享目录下创建新文件时属主、属组却是为nobody。

这个问题有两种解决方案:

  1. 客户端挂载时加上 -o nfsvers=3,这是指定nfs的版本为3,不使用4版本。

为了确保没问题可以再remount一下:

  1. 客户端和服务端都需要修改etc/idmapd.conf配置文件:

vim /etc/idmapd.conf

把配置文件中的“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务,在CentOS7中为rpcbind服务。

15.1 FTP介绍

FTP 和NFS类似,也是文件共享传输相关的一种服务,FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

我们都知道xshell支持rz和sz命令,可以让windows和Linux机器互相传输文件,但是这种传输方式有限制,例如超过四个G的文件就无法传输,又或者通过跳板机登录的一台远程服务器,也无法使用rz和sz命令来传输文件。这种情况下就可以使用FTP来解决这个问题。

我们可以在远程服务器上搭建一个FTP服务,如果Windows作为客户端就可以下载一个客户端软件,连接上服务器的FTP服务,然后就可以进行互传文件了,这种就叫FTP服务器。

但是如果在企业应用中,大企业的话是不使用FTP的,因为不是很安全,而且对于版本管理上并不是很好,所以一般只有小公司或者个人的网站之类的会使用FTP。大企业都是使用自动化发布类似于git这种能够很好地进行版本控制的服务平台。

15.2/15.3 使用vsftpd搭建ftp

介绍完FTP后,下面我们自己通过vsftpd搭建一个ftp服务,CentOS上会自带有vsftpd包,只需要通过yum安装即可:

yum install -y vsftpd

然后创建virftp,作为这个服务的映射用户:

useradd -s /sbin/nologin virftp

虽然vsftpd可以直接使用系统级别的用户,但是这样做不安全,所以我们要创建虚拟用户去映射这个普通用户,而虚拟用户是可以映射多个的,由于创建普通用户时候指定了 /sbin/nologin,这样的话即便有账户和密码也无法登陆系统,这样能够提高安全性,编辑vsftpd_login文件,这是虚拟用户的密码文件:

vim /etc/vsftpd/vsftpd_login

内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行:

testuser1

123456abc

保存退出后给这个文件授予600权限,因为这是密码文件不能给所有的用户都可以读:

chmod 600 /etc/vsftpd/vsftpd_login

接着就是把这个密码文件转换成二进制文件,转换命令如下:

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

创建虚拟用户的配置文件所在的目录:

mkdir /etc/vsftpd/vsftpd_user_conf

进入到该目录:

cd /etc/vsftpd/vsftpd_user_conf

创建一个配置文件,这个配置文件的名称必须和你在vsftpd_login文件里定义的用户名一致:

vim testuser1

编辑内容如下:

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

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 -p /home/virftp/testuser1

在家目录下创建一个文件,等会登录虚拟用户时就能看到这个文件:

touch /home/virftp/testuser1/aming.txt

修改virftp家目录的权限,因为虚拟用户要映射到这个用户上:

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

注意:如果/lib64/security/pam_userdb.so不存在的话是无法进行验证的,CentOS6的话是不在lib64目录下的。

接着编辑vsftpd.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  //告诉vsftpd服务使用的是虚拟用户

user_config_dir=/etc/vsftpd/vsftpd_user_conf

allow_writeable_chroot=YES

修改完后就可以启动vsftpd服务了:

systemctl start vsftpd

监听的是21端口:

到此为止我们的FTP服务就搭建完成了,接下来就是进行测试环节。

测试需要安装一个客户端,在windows上可以下载filezilla,Linux则可以安装lftp作为客户端,下面在Linux上演示一下:

yum -y install lftp

安装好后就可以通过lftp命令登录虚拟用户了:

输入 ? 可以看到支持使用哪些命令:

最常用的两个命令就是put和get,put是上传文件,get是下载文件,例如我们get一下aming.txt这个文件,然后退出客户端,可以看到默认会get到当前目录下:

最后介绍一下如何使用Xshell实现与ftp相似的功能,有两种方式:

  1. 新建一个会话:

属性编辑如下:

设置一下文件的保存路径,我这里是定义在桌面上:

然后点击确定,接着连接虚拟机:

输入用户和密码后,登录到服务器上:

默认是登录到root目录下:

可以get一个文件(前提是此文件没有过高的权限):

如图就是get成功了。

文件也保存到桌面上了:

  1. 因为以上这种是命令行的方式,不够直观,除此之外的第二种方式就是下载一个插件,这个插件是Xftp,能够实现图形化的效果,按Ctrl + Alt + F 快捷键能够弹出Xftp的下载窗口:

具体的安装和使用会在下一篇介绍。

时间: 2024-08-23 16:00:08

exportfs命令,NFS客户端问题,FTP介绍,使用vsftp搭建ftp的相关文章

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

一.exportfs命令NFS服务端的nfs服务不能随意重启,如果需要重启服务端的nfs服务,需要先把挂载服务端共享目录的所有客户端的挂载先全部卸载客户端执行:#umount /mnt/ //提示如下umount.nfs4: /mnt: device is busy解决:第一种办法:退出/mnt目录[[email protected] mnt]# cd[[email protected] ~]# umount /mnt/第二种方法:#umount -l /mnt/ 先卸载掉客户端的挂载,然后在重

NFS的exportfs命令、客户端问题介绍

exportfs命令 exportfs命令常用选项为-a.-r.-u和-v,各选项含义如下: -a:表示全部挂载或者全部卸载 -r:表示重新挂载 -u:表示卸载某一个目录 -v:表示显示共享目录 1.修改配置文件 服务端配置: [[email protected] ~]# vim /etc/exports 增加一行配置如下: /tmp/ 172.16.111.0/24(rw,sync,no_root_squash) [[email protected] ~]# exportfs -arv //不

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

14.4 exportfs命令在服务器上运行了exportfs -arv然后在客户端showmount -e 192.168.133.130查看是否连接14.5 NFS客户端问题在centos6就会有以上的情况mount -t nfs -o nfsers=3 192.168.137.129:/tmp/ /mnt/15.1 FTP介绍将这个文件的字符转换成电脑识别的二进制字符,转换后下面的目录多了一个vsftpd_login.db文件,它是无法用cat查看的vim testuser1vim /et

FTP:介绍、vsftpd搭建ftp、xshell使用xftp传输文件、pure-ftpd搭ftp

             FTP介绍 (rz和sz: 传文件    rz:window-->linux    sz:linux-->window  文件超过4GB则不管用)                       使用vsftpd搭建ftp服务 1.安装:yum install -y vsftpd 2.创建用户: (vsftpd默认支持是可以使用系统账号登录的,但是这样不安全,因为我们系统的用户是可以登录,然后去操作我们的操作系统的.所以使用虚拟账号体系,创建虚拟用户,虚拟用户是不能登陆到

FTP介绍、使用vsftpd搭建ftp、使用pure-ftpd搭建ftp服务

FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输.FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机.小公司用的多,大企业不用FTP,因为不安全. 使用vsftpd搭建ftp服务 1.安装及建立账号 [[email protected] ~]# yum insta

15.1-15.3 FTP,使用vsftpd搭建FTP服务

FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输. FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机. 小公司用的多,大企业不用FTP,因为不安全 使用vsftpd搭建ftp服务 1 centos上自带vsftpd 2 #yum install -y vsftp

centos7 上 使用vsftp 搭建ftp环境

搭建了一个vsftp的环境,花了小半天才搞好,主要是在文件权限部分折腾了挺久,我的系统环境是CentOS Linux release 7.0.1406 ,vsftpd-3.0.2-21.el7.x86_64 首先是虚拟用户的概念,vsftp有三种登录方式,匿名,本地用户,虚拟用户. 匿名使用ftp或者anonymous登录,无密码 本地用户使用系统用户登录 虚拟用户是使用在vsftp内创建的一系列账户进行登录,vsftp通过db以及用户配置文件来对用户进行管理,通常配置比较灵活,安全性也较高 搭

linux用VSFTP搭建FTP服务器

一般在各种linux的发行版中,默认带有的ftp软件是vsftp,从各个linux发行版对vsftp的认可可以看出,vsftp应该是一款不错的ftp软件. sudo apt-get install vsftpd VSFTP的主配置文件是/etc/vsftpd.conf 安装完毕后或许会自动生成一个帐户”ftp”,/home下也会增加一个文件夹.如果没有生成这个用户的话可以手动来,生成了就不用了:代码:sudo useradd -m ftpsudo passwd ftp 有”ftp”帐户后还要更改

服务器搭建2 VSFTP搭建FTP服务器

FTP服务器是平时应用最为广泛的服务之一.VSFTP是Very Secure FTP的缩写,意指非常安全的FTP服务.VSFTP功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务. 首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有:  1.如何添加FTP用户?  2.如何临时冻结某FTP用户?  3.FTP用户登入后的默认目录?是否可以改变?  4.如何锁定FTP用户可访问的目录范围?  5.FTP用户可以有哪些访问权限