14.4 exportfs命令php
14.5 NFS客户端问题linux
15.1 FTP介绍nginx
15.2/15.3 使用vsftpd搭建ftpshell
14.4 exportfs命令:vim
exportfs命令是跟nfs-utils包一块儿安装的windows
应用场景:咱们共享了一个目录,须要更改或者增长目录,就须要更改配置文件和重启NFS服务。若是远程客户端正在挂载着使用着,若是停掉远程客户端就会挂起(nginx或者php),这个影响会很大。就是D进程不可中断的进程。只能先卸载下来(umount)在重启NFS,但有几十台机器就不合适了。就会使用exportfscentos
~~1.安全
exportfs经常使用选项服务器
-a 所有挂载或者所有卸载session
通常使用 -arv,就会让配置文件生效
-r 从新挂载
-u 卸载某一个目录
-v 显示共享目录
如下操做在服务端上
vim /etc/exports //增长
/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)
exportfs -arv //不用重启nfs服务,配置文件就会生效
~~2.
如下操做在客户端
mount -t nfs 192.168.208.128:/tmp /tmp
或mount -t nfs -o nfsvers=3 192.168.208.128:/tmp/ /mnt/ #(为解决已经出现nobody,下一节有讲)。要先umonut /mnt/
ls -l !$
-oremount,nfsvers=3 (-o从新挂在完之后,可使用-oremount。不卸载的话不能直接-oremount)
实例:
~~1.
[root@axinlinux-01 ~]# vim /etc/exports 打开那个配置文件
/home/nfstestdir 192.168.208.130/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/tmp 192.168.208.130(rw,sync,no_root_squash) 在下面加入一行配置,选了no_root_squash(不限制root)此时写的是服务端的IP
[root@axinlinux-01 ~]# exportfs -arv 再exportfs -arv
exporting 192.168.208.130:/tmp
exporting 192.168.208.130/24:/home/nfstestdir 显示有了
双方关闭防火墙和selinux,否则会报错
~~2.
[root@axinlinux-02 ~]# showmount -e 192.168.208.128 在02上showmount看一下有没有
Export list for 192.168.208.128:
/home/nfstestdir 192.168.208.130/24
/tmp 192.168.208.130 是有的
[root@axinlinux-02 ~]# mount -t nfs 192.168.208.128:/tmp/ /mnt/ 在02上挂载到/mnt(这时的IP写的是服务端的,就是制定服务端的IP及共享的目录)到本机的/mnt
此时,02的/mnt就是01的/tmp
[root@axinlinux-02 ~]# df -h 看一下有没有这个挂载
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1011M 27G 4% /
devtmpfs 907M 0 907M 0% /dev
tmpfs 916M 0 916M 0% /dev/shm
tmpfs 916M 8.6M 908M 1% /run
tmpfs 916M 0 916M 0% /sys/fs/cgroup
/dev/sda1 187M 113M 75M 61% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.208.128:/tmp 28G 8.4G 20G 30% /mnt 是有的
[root@axinlinux-02 ~]# vi /mnt/1212.txt 在02上测试一下,在02的挂载点/mnt下建个文件
[root@axinlinux-02 ~]# ls -l /mnt/1212.txt 看一下
-rw-r--r--. 1 root root 18 8月 27 23:32 /mnt/1212.txt 属主属组为root
[root@axinlinux-01 ~]# ls -l /tmp/1212.txt 回到01上看一下
-rw-r--r-- 1 root root 18 8月 27 23:32 /tmp/1212.txt 属主属组也是root
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14.5 NFS客户端问题:
~~NFS 4版本会有该问题,尤为是centos6
~~应用场景:客户端挂载共享目录后,不论是root用户仍是普通用户,建立新文件时属主、属组为nobody。
方法以下两种:
~1.
客户端挂载时加上 -o nfsvers=3 #指定为3版本
~2.客户端和服务端都须要
vim /etc/idmapd.conf //
把“#Domain = local.domain.edu” 改成 “Domain = xxx.com” (这里的xxx.com,随意定义吧),而后再重启rpcidmapd服务(在centos7上是没有rpcidmapd服务的,须要的话重启rpcbind就能够)
实例:
[root@axinlinux-02 ~]# umount /mnt/ 先卸载02的挂载点
[root@axinlinux-02 ~]# mount -t nfs -o,nfsvers=3 192.168.208.128:/tmp/ /mnt/ 再 -o,nfsvers=3
[root@axinlinux-02 ~]# mount -t nfs -oremount,nfsvers=3 192.168.208.128:/tmp/ /mnt/ 执行完上一步,才能-umount(没什么用,由于上一步已经挂载了,只是为了体现remount吧)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15.1 FTP介绍:
应用场景:以前接触过lrzsz(windows与linux互传)。在文件太大(超过4G)或者,使用阿里云的机器存在跳板机(一台机器调到另外一台机器,中间就有一个跳板机)的状况下,lrzsz会很差使。
FTP就能够解决。可让咱们在linux服务器上,搭建FTP服务。客户端上(好比windows)安装一个客户端软件。就能够连到服务端,吧本地的文件传到服务器上去,也能够把服务器的文件下载到本地来。这就是FTP服务器
~1.FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
~2.FTP的主要做用就是让用户链接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,而后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
~3.小公司用的多,大企业不用FTP,由于不安全 (使用自动化发布的工具,可理解为版本的更新上线)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15.2/15.3 使用vsftpd搭建ftp:
centos上自带的ftp服务软件包就叫vsftpd
~1.centos上自带vsftpd
~2.yum install -y vsftpd
~3.useradd -s /sbin/nologin virftp
由于建立普通用户是能够经过ftp来登陆系统的,这样不安全。因此要要设置一个虚拟用户,让他没法登陆系统
建立普通用户的目的就是让这些虚拟的用户作一个映射的。就是在上传或者下载的时候要有一个用户去执行,就是咱们再次建立的这个用户
~4.vim /etc/vsftpd/vsftpd_login //内容以下,奇数行为用户名,偶数行为密码,多个用户就写多行
这个文件为虚拟用户的密码文件,定义用户名和密码
testuser1
aminglinux
~5.chmod 600 /etc/vsftpd/vsftpd_login
~6.db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
db_load将这个密码文件转换成计算机识别的二进制文件
.db这个文件是不能直接cat的
~7.mkdir /etc/vsftpd/vsftpd_user_conf
建立虚拟用户的配置文件所在的目录,也是自定义的
~8.cd /etc/vsftpd/vsftpd_user_conf
~9.vim testuser1 //加入以下内容 建立第一个用户的配置文件,用户的名字要跟上面定义的用户名保持一致(~4.)
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 #当咱们链接ftp空闲时间段,超出600秒断开(断开后从新登陆)
data_connection_timeout=120 #数据传输的超出时间
max_clients=10 #最大的客户端是多少
~10. mkdir /home/virftp/testuser1 #建立虚拟用户的家目录
touch /home/virftp/testuser1/aming.txt #测试的时候会看到这个文件(lftp)
chown -R virftp:virftp /home/virftp
vim /etc/pam.d/vsftpd //在最前面加上 #用来定义密码文件在哪里(这个文件是用来认证的一个文件)。登陆ftp须要有一个认证的过程,什么样的形式,去哪里找密码库,比对输入的用户密码对不对
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
红色标记的这个文件必需要是存在的,64位的
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
~11.vim /etc/vsftpd/vsftpd.conf #编辑vsftpd的主配置文件
将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 #虚拟用户要映射到一个系统的用户(就是咱们以前操做的)。就使用guest_username
virtual_use_local_privs=YES #告诉服务咱们如今使用的是虚拟服务
user_config_dir=/etc/vsftpd/vsftpd_user_conf #定义虚拟文件配置文件所在的路径
allow_writeable_chroot=YES
~12.systemctl start vsftpd //启动vsftpd服务
测试ftp:
~1.yum install -y lftp #为测试方便咱们在linux上安装测试软件
也能够在windows上安装ftp客户端。filezilla client
lftp ftpuser1@127.0.0.1
执行命令ls,看是否正常输出
若不正常查看日志/var/log/messages和/var/log/secure
windows下安装filezilla客户端软件,进行测试
实例:
[root@axinlinux-01 ~]# yum install -y vsftpd
[root@axinlinux-01 ~]# useradd -s /sbin/nologin virftp
[root@axinlinux-01 ~]# vim /etc/vsftpd/vsftpd_login
testuser1
aminglinux
user1
aminglinux
[root@axinlinux-01 ~]# chmod 600 /etc/vsftpd/vsftpd_login
[root@axinlinux-01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@axinlinux-01 ~]# ls -l /etc/vsftpd/
总用量 36
-rw------- 1 root root 125 8月 3 2017 ftpusers
-rw------- 1 root root 361 8月 3 2017 user_list
-rw------- 1 root root 5030 8月 3 2017 vsftpd.conf
-rwxr--r-- 1 root root 338 8月 3 2017 vsftpd_conf_migrate.sh
-rw------- 1 root root 38 8月 28 22:26 vsftpd_login
-rw-r--r-- 1 root root 12288 8月 28 22:29 vsftpd_login.db
[root@axinlinux-01 ~]# mkdir /etc/vsftpd/vsftpd__user_conf
[root@axinlinux-01 ~]# cd /etc/vsftpd/vsftpd__user_conf/
[root@axinlinux-01 vsftpd__user_conf]#
[root@axinlinux-01 vsftpd__user_conf]# vim testuser1
cat 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
[root@axinlinux-01 vsftpd__user_conf]# mkdir /home/virftp/testuser1
[root@axinlinux-01 vsftpd__user_conf]# touch /home/virftp/testuser1/aming.txt
[root@axinlinux-01 vsftpd__user_conf]# chown -R virftp:virftp /home/virftp
[root@axinlinux-01 vsftpd__user_conf]# vim /etc/pam.d/vsftpd
#%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
[root@axinlinux-01 vsftpd__user_conf]# ls /lib64/security/pam_userdb.so #检查这个文件是存在的
/lib64/security/pam_userdb.so
[root@axinlinux-01 vsftpd__user_conf]# vim /etc/vsftpd/vsftpd.conf
# Allow anonymous FTP? (Beware - allowed by default if you comment this out). #这一行的下一行修改
anonymous_enable=NO 修改成NO
# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access #这一行的下一行修改
anon_upload_enable=NO 注释去掉,修改成NO
# new directories. #这一行的下一行修改
anon_mkdir_write_enable=NO #注释去掉,修改成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
[root@axinlinux-01 vsftpd__user_conf]# systemctl start vsftpd
[root@axinlinux-01 vsftpd__user_conf]# ps aux |grep vsftpd
root 2565 0.0 0.0 53256 576 ? Ss 23:11 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 2593 0.0 0.0 112720 976 pts/0 S+ 23:14 0:00 grep --color=auto vsftpd
[root@axinlinux-01 vsftpd__user_conf]# netstat -lntp
tcp6 0 0 :::21 :::* LISTEN 2565/vsftpd vsftpd监听21端口
测试:
[root@axinlinux-01 ~]# yum install -y lftp
[root@axinlinux-01 ~]# lftp testuser1@127.0.0.1
口令:
lftp testuser1@127.0.0.1:~> ls
drwxr-xr-x 2 1008 1008 23 Aug 28 15:43 testuser1
lftp testuser1@127.0.0.1:/> get testuser1/aming.txt
49 bytes transferred
lftp testuser1@127.0.0.1:/> exit
[root@axinlinux-01 ~]# ls
11.txt 22.txt 2.txt aming.txt anaconda-ks.cfg awk axin grep OD-02-014月度工做行事历.xlsx perl5 sed
[root@axinlinux-01 ~]# cat aming.txt
dfsdfsgfsgfsdfsd
sdgfsdfsdfsd
sdfsdfsdfsdfsfsfsd
xshell怎么实现跟ftp相似的功能:
两种方法~1.与~2.
~1.
新建一个会话
进去之后能够ls看一下。咱们get下来的文件的路径能够自定义(好比到桌面上)
~2.
使用xftp。在xshell界面按Ctrl+Alt+F,会提示安装xftp
具体操做在下一任务。(56)