一. NFS
1. NFS简介
NFS全称是network file system
NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
假如有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C. 但是使用NFS只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是通过网络的方式去访问A上的那个目录的。
2. 安装、配置NFS服务
需要安装两个包nfs-utils和rpcbind(在centos5中叫做portmap)
yum install -y nfs-utils
yum install -y rpcbind
客户端需要安装才可以
提供nfs服务的机器上 vim /etc/exports //内容如下:
/home/ 192.168.137.0/24(rw,sync,all_squash,anonuid=501,anongid=501)
共分为三部分:
第一部分就是本地要共享出去的目录,
第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)
第三部分就是小括号里面的,为一些权限选项。它表示:共享的目录为/home,信任的主机为192.168.137.0/24这个网段,权限为读写,同步,限定所有使用者,并且限定的uid和gid都为501。
启动rpcbind
/etc/init.d/rpcbind start
启动nfs
/etc/init.d/nfs start
两者也可以写成一行
/etc/init.d/rpcbind start;/etc/init.d/nfs start
查看防火墙是否关闭
getenforce
/usr/sbin/setenforce 0 立刻关闭 SELINUX
/usr/sbin/setenforce 1 立刻启用 SELINUX
showmount -e
查看远程共享段共享出来的nfs目录,只能查询同一个网段的
3. NFS配置的一些选项说明
rw :读写;
ro :只读;
sync :同步模式,内存中数据时时写入磁盘;
async :不同步,把内存中数据定期写入磁盘中;
no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;
root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;
all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。
4. 客户端上挂载NFS
客户端同样安装 yum install -y nfs-utils
查看服务器端都共享了哪些目录
showmount -e 192.168.137.10
在客户端上挂载服务端的nfs
mount -t nfs -onolock,nfsvers=3 192.168.137.10:/home/ /mnt/ //如果不加 -onolock,nfsvers=3 则在挂载目录下的文件属主和组都是nobody,如果指定nfsvers=3则显示root
-onolock:不上锁的意思
df -h 查看挂载的情况
5. exportfs 命令的使用
-a :全部挂载或者卸载;
-r :重新挂载;
-u :卸载某一个目录;
-v :显示共享的目录
改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs即可
exportfs -arv 使生效
在使用nfs时,常用一个选项就是 -o nolock
我们还可以把要挂载的nfs目录写到client上的/etc/fstab文件中 192.168.137.10:/tmp/ /test nfs nolock 0 0 然后 mount -a
二. ftp
1. 什么是ftp
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 “文传协议” 用于Internet上的控制文件的双向传输。
FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
在CentOS或者RedHat Linux上有自带的ftp软件叫做vsftpd
2. 使用pure-ftpd搭建FTP服务
pure-ftpd 官网地址
http://www.pureftpd.org/project/pure-ftpd
安装yum扩展源,已经安装过的可以不需要安装
yum install -y epel-release
安装服务端
yum install -y pure-ftpd
重定向配置文件,重定向的内容是www.aminglinux.com/study_v2/.pf.c 这个网站上的。
curl www.aminglinux.com/study_v2/.pf.c > /etc/pure-ftpd/pure-ftpd.conf
pure-ftpd.conf配置文件参考,也可以说是模板
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
Daemonize yes
MaxClientsPerIP 8
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous yes
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
PureDB /etc/pure-ftpd/pureftpd.pdb
LimitRecursion 3136 8
AnonymousCanCreateDirs no
MaxLoad 4
AntiWarez yes
Umask 133:022
MinUID 10
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload no
CustomerProof yes
使用mkpasswd升级随机字符串,如果没有mkpasswd命令,需要安装expect库
yum install -y expect
user=`mkpasswd -l 5 -s 0 -d 0 -C 0`
生成密码字符串
pass=`mkpasswd -s 0`
把结果重定向到/tmp/ftp.pass中
echo $user $pass > /tmp/ftp.pass
mkdir /data/ftp #创建ftp服务的目录
[[email protected] ~]# echo -e "$pass\n$pass"|pure-pw useradd $user -u cheng -d /data/ftp/
pure-pw mkdb #创建密码文件
pure-pw list #列出用户以及对应的目录
pure-pw userdel $user #删除账号
错误提示
[[email protected] ~]# echo -e "$pass\n$pass"|pure-pw useradd $user -u apache -d /data/ftp/
You must give (non-root) uid and gid
这个错误的意思是说apache这个指定的用户不存在,需要创建才可以,这里的用户的ID一定要大于10才可以
/etc/init.d/pure-ftpd start #启动服务
[[email protected] ~]# ps aux |grep pure-f
检查是否启动起来
测试
安装lftp,在客户端安装
[[email protected] ~]# yum install -y lftp
Windows上使用这个软件:filezilla-server
访问方式
用户名@ip地址
[[email protected] ~]# lftp [email protected]
日志文件位置
/var/log/messages
下载ftp上的文件,下载下来的文件在当前目下
下载cheng.txz这个文件
lftp [email protected]:/> get cheng.txz
上传文件格式
put [文件名]
三、vsftp这个实验目前做的时候出错了,稍后成功之后了补上来