【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
NFS介绍
-
NFS是Network File System的缩写
-
NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本
-
NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。
-
NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。
NFS服务端安装配置
-
首先准备两台机器,一个作为客户端,一个作为服务端。
-
服务端要安装两个服务无 yum install -y nfs-utils rpcbind,客户端也要安装nfs-utils。
-
安装完成后,编辑vim /etc/exports //加入如下内容
/home/nfstestdir //分享的目录 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
保存配置文件后,执行如下准备操作
mkdir /home/nfstestdir
chmod 777 /home/nfstestdir //改成777是方便做实验。
systemctl start rpcbind //一般是安装好自动启动的,可以看下netstat -lnpt看一下起没起来。
systemctl start nfs //ps aux |grep nfs 和rpc 看看服务有没有启动,一般启动nfs之后,rpc会自动启动相关服务。
systemctl enable rpcbind //设置开机自启
systemctl enable nfs
-
/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000),看一下这里面的配置选项都有哪些,什么含义
-
rw 读写
-
ro 只读
-
sync 同步模式,内存数据实时写入磁盘
-
async 非同步模式
-
no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
-
root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
-
all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
-
anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid
客户端挂载
-
yum install -y nfs-utils 安装一下客户端的nfs
-
然后 showmount -e 192.168.245.128 //该ip为NFS服务端ip
[root@aminglinux-01 ~]# showmount -e 192.168.245.128
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
报错,防火墙导致。关一下服务端和客户端的防火墙。 systemctl stop firewalld
还有 setenforce 0
或者:service iptables stop //关闭防火墙
-
mount -t nfs 192.168.245.128:/home/nfstestdir /mnt 挂载
-
df -h
[root@aminglinux-01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 18G 3.6G 15G 21% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
192.168.245.128:/home/nfstestdir 18G 6.8G 12G 38% /mnt
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@aminglinux-01 ~]#
-
创建一个文件 touch /mnt/aminglinux.txt
ls -l /mnt/aminglinux.txt //可以看到文件的属主和属组都为1000
exportfs命令
-
常用选项
-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录
- 当改变/etc/exports配置文件后,使用exportfs命令挂载不需要重启NFS服务。
NFS客户端问题
-
客户端文件属主属组nobody
FS 4版本会有该问题
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为no body
-
客户端挂载时加上 -o nfsvers=3
-
客户端和服务端都需要
vim /etc/idmapd.conf // 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务
FTP介绍
-
FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
-
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
-
FTP小公司用的多,大企业不用FTP,因为不安全
使用vsftpd搭建ftp服务
-
centos上自带的FTP叫vsftpd
-
安装 yum install -y vsftpd
-
创建用户 useradd -s /sbin/nologin virftp
首先建立与虚拟账号相关联的系统账号
useradd -s /sbin/nologin virftp
接着建立与虚拟账户相关的文件 vim /etc/vsftpd/vsftpd_login
usertest1
111222333
usertest2
444555666
奇数行为用户名,偶数行为密码,多个用户就写多行
然后更改该文件的权限,提升安全级别
chmod 600 /etc/vsftpd/vsftpd_login
然后把明文的密码文件改成计算机识别的2进制文件
[root@aminglinux-01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@aminglinux-01 ~]# ls -l /etc/vsftpd/
总用量 36
-rw-------. 1 root root 125 8月 3 14:10 ftpusers
-rw-------. 1 root root 361 8月 3 14:10 user_list
-rw-------. 1 root root 5030 8月 3 14:10 vsftpd.conf
-rwxr--r--. 1 root root 338 8月 3 14:10 vsftpd_conf_migrate.sh
-rw-------. 1 root root 40 11月 6 16:43 vsftpd_login
-rw-r--r--. 1 root root 12288 11月 6 16:46 vsftpd_login.db
[root@aminglinux-01 ~]#
创建虚拟用户的配置文件所在的目录
mkdir /etc/vsftpd/vsftpd_user_conf
-
创建虚拟用户和对应的配置文件
用户的配置文件名一定要跟对应用户的名字是一样的。cd /etc/vsftpd/vsftpd_user_conf
vim usertest1
写入如下内容
local_root=/home/virftp/usertest1 定义虚拟用户的家目录
anonymous_enable=NO 是否允许匿名用户
write_enable=YES 是否允许可写
local_umask=022 定义创建新文件和新目录的权限是什么
anon_upload_enable=NO 是否允许匿名用户可以上传
anon_mkdir_write_enable=NO 是否允许匿名用户可以创建目录并可写
idle_session_timeout=600 当我们连接FTP超时时间600s
data_connection_timeout=120 数据传输超时时间120s
max_clients=10 最大客户端连接数
创建虚拟用户的家目录 mkdir /home/virftp/usertest1
创建一个文件,等会登陆就能看到这个文件了 touch /home/virftp/usertest1/aming.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
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
-
修改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
[root@aminglinux-01 vsftpd_user_conf]# ps aux |grep vsftp
root 3264 0.0 0.0 53204 572 ? Ss 18:08 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 3266 0.0 0.0 112668 972 pts/0 S+ 18:08 0:00 grep --color=auto vsftp
[root@aminglinux-01 vsftpd_user_conf]#
-
测试
安装lftp客户端软件 yum install -y lftp
测试
[root@aminglinux-01 ~]# lftp usertest1@127.0.0.1
口令:
lftp usertest1@127.0.0.1:~> ls
lftp usertest1@127.0.0.1:~> ls
-rw-r--r-- 1 0 0 0 Nov 06 10:34 aming.txt
lftp usertest1@127.0.0.1:/>
扩展学习:
-
vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.com/bbs/thread-342-1-1.html
-
ftp的主动和被动模式 http://www.aminglinux.com/bbs/thread-961-1-1.html
来源:oschina
链接:https://my.oschina.net/u/3852961/blog/1853778