NFS服务和FTP服务配置

14.1 NFS介绍

NFS(Network File System)数据传输基于RPC协议,RPC为Remote Procedure Call的简写。shell

NFS的应用场景是:A,B,C3台机器上须要保证被访问到的文件是同样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。数据库

NFS原理图:vim


14.2 NFS服务端安装配置

在CentOS上使用NFS服务须要安装两个包(nfs-utils和rpcbind),当咱们使用yum安装nfs-utils时会一并安装rpcbind:安全

#yum install -y nfs-utils服务器

而后修改配置文件:session

#vim /etc/exportsdom

写入以下内容:async

/home/nfstestdir 192.168.6.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)测试

编辑好配置文件后建立相关的目录并启动NFS服务:ui

[root@zhangjin-120:~]#mkdir /home/nfstestdir  #建立目录
[root@zhangjin-120:~]#chmod 777 /home/nfstestdir  #更改权限
[root@zhangjin-120:~]#systemctl start rpcbind  #启动rpc服务
[root@zhangjin-120:~]#systemctl start nfs  #启动nfs服务
[root@zhangjin-120:~]#systemctl enable rpcbind  #rpc服务开机启动
[root@zhangjin-120:~]#systemctl enable nfs  #nfs服务开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.


14.3 NFS配置选项

上面咱们修改了配置文件/etc/exports,并写入以下内容:

/home/nfstestdir 192.168.6.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

其中,第一部分是本地要共享出去的目录,而后是容许访问的主机(能够是一个IP,也能够是一个IP段),小括号里面的是一些权限选项:

rw:表示只写。

ro:表示只读。

sync:同步模式,表示内存中的数据实时写入磁盘。

async:非同步模式,表示把内存中的数据按期写入磁盘。

no_root_squash:加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操做同样。但这样安全性会下降。

root_squash:与no_root_squash选项对应,表示root用户对共享目录的权限不高,只有普通用户的权限,即限制了root。

all_squash:表示无论使用NFS的用户是谁,其身份都会被限定为一个指定的普通用户身份。

anonuid/anongid:要和root_squash以及all_squash选项一同使用,用于指定使用NFS的用户被限定后的uid和gid,但前提是本机的/etc/passwd中存在相应的uid和gid。

上面的配置文件/etc/exports为要共享的目录为/home/nfstestdir,信任的主机为192.168.6.0/24这个网段,权限为读/写,同步模式,限定全部使用者,而且限定的uid和gid都为1000。

咱们准备两台虚拟机,192.168.6.120做为服务端,192.168.6.123做为客户端。在客户端挂载NFS以前,咱们须要先查看服务端共享了哪些目录。客户端安装了nfs-utils包后,可使用showmount命令查看:

使用命令showmount -e IP能够查看NFS的共享状况,从上面咱们能够看到192.168.6.120的共享目录为/home/nfstestdir,信任主机为192.168.6.0/24这个网段。

而后在客户端上(192.168.6.123)挂载NFS:

能够看到增长了一个/mnt分区,这个就是NFS共享的目录了。

咱们进入到/mnt/目录下,并建立测试文件:

咱们在服务端上也能够看到这个文件:


14.4 exportfs命令

exportfs命令的经常使用选项有:

-a:表示所有挂载或者卸载。

-r:表示从新挂载。

-u:表示卸载某一个目录。

-v:表示显示共享的目录。

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

咱们在服务端(192.168.6.120)修改配置文件/etc/exports:

而后在服务端执行命令exportfs -arv:

在前面咱们用不对劲了mount命令。其实用mount命令来挂载NFS服务是要用-t nfs来指定挂载的类型为nfs。另外在挂载NFS服务时,经常使用-o nolock(不加锁)选项。例如咱们在客户端(192.168.6.123)上执行以下命令:

咱们还能够把要挂载的NFS目录写到客户端上的/etc/fstab文件中,挂载时只须要执行mount -a命令便可。

#vim /etc/fstab

这样操做的好处是之后开机会自动挂载NFS。刚刚挂载的/zhangjin/目录在服务端设置了no_root_squash,它并不会限制root用户,也就是说使用root用户建立文件时,跟在客户端本机上建立的同样:

能够看到,test.txt的全部者和所属组都为root。


14.5 NFS客户端问题

NFS4版本会有该问题:客户端挂载共享目录后,不论是root用户仍是普通用户,建立新文件时属主、属组为nobody。

解决的办法有两种:

一是客户端挂载时加上-o nfsvers=3(指定nfs的版本为3版本)

# mount -t nfs -o nfsvers=3 192.168.6.120:/tmp/ /mnt/

客户端和服务端都须要

另外一种方法是编辑文件:

vim /etc/idmapd.conf

把“#Domain = local.domain.edu”改成“Domain = xxx.com”,而后再重启rpcidmapd服务。 


15.1 FTP介绍

FTP(File Transfer Protocol)文件传输协议,用于在因特网上控制文件的双向传输。它同时也是一个应用程序,用户能够经过它把本身的PC机与世界各地全部运行FTP协议的服务器相连,以访问服务器上的大量程序和信息。

FTP的主要做用就是让用户链接一个远程计算机,并查看远程计算机中的文件,而后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。FTP方便传输数据,因此我的用户不少,但在企业里用得愈来愈少,由于FTP是有必定安全隐患的。


15.2/15.3 使用vsftpd搭建ftp

一、安装vsftpd

#yum install -y vsftpd

二、创建账号及与虚拟帐户相关的文件

#useradd virftp -s /sbin/nologin

#vim /etc/vsftpd/vsftpd_login

写入以下内容:

test1

123456

zhangjin

abcdef

其中,test一、test2为用户名,12345六、abcdef为对应的密码。

再更改该文件的权限

#chmod 600 /etc/vsftpd/vsftpd_login

因为vsftpd使用的密码不是明文的,须要生成对应的库文件:

#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 test1

写入以下内容:

local_root=/home/virftp/test1

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

max_per_ip=5

local_max_rate=50000

其中,local_root为test1帐号的家目录,anonymous_enable用来限制是否容许匿名帐号登陆(若为NO,表示不容许匿名帐号登陆),write_enable=YES表示可写,local_umask指定umask值,anon_upload_enable表示是否容许匿名帐号上传文件,anon_mkdir_write_enable表示是否容许匿名帐号可写。

建立zhangjin帐号的步骤和test1同样:

#mkdir /home/virftp/test1
#touch /home/virftp/test1/testvirftp.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

四、修改全局配置文件/etc/vsftpd/vsftpd.conf

并在文件最后面添加以下内容:

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

再安装lftp客户端软件:

#yum install -y lftp

而后进行测试:


15.4 xshell使用xftp传输文件

下载软件:

在Xshell里按住ctrl+alt+f弹出下载页面:

 

安装完成后再在Xshell里按住ctrl+alt+f,此时就会弹出传输页面:

此时就能够在两边传输文件了。


15.5 使用pure-ftpd搭建ftp服务

一、安装pure-ftpd

#yum install -y epel-release

#yum install -y pure-ftpd

二、配置pure-ftpd

#vim /etc/pure-ftpd/pure-ftpd.conf

而后搜索PureDB                        /etc/pure-ftpd/pureftpd.pdb,把前面的#去掉。而后启动pure-ftpd,启动以前须要关闭vsftpd,由于端口冲突:

#systemctl stop vsftpd

#systemctl start pure-ftpd

查看pure-ftpd是否启动成功:

三、创建帐号

其中,-u选项将虚拟用户ftp_user1与系统用户pure-ftp关联在一块儿,也就是说,使用ftp_user1帐号登陆FTP后,会以pure-ftp的身份来读取和下载文件,-d选项后面的目录为ftp_user1帐户的家目录,这样可使ftp_user1只能访问其家目录/data/ftp/。

而后建立用户信息数据库文件:

#pure-pw mkdb

其中,pure-pw还能够列出当前的FTP帐号以及删除某个帐号。例如:

下面进行测试:

相关文章
相关标签/搜索