2019独角兽企业重金招聘Python工程师标准>>>

14.4 exportfs命令

exportfs命令 和NFS一起安装的

例: 配置了一个共享目录,之后需要新增、更改、机器或者目录;首先需要更改配置,重启NFS服务,但是远程客户端正在使用NFS服务,重启服务端的NFS服务就会对远程的客户端有影响,比如,造成服务异常,进程异常,有很大可能导致系统坏掉
到了这种时候,只能去一台一台机器的卸除挂载点,然后才能去重启NFS服务,但,如果是1000台机器,你怎么一台一台机器的去卸载

想省略这种操作的办法就是使用exportfs命令

exportfs
-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录

使配置文件重新生效

exportfs -arv

例:

客户端B机器

[root@localhost ~]# df -h
文件系统                          容量  已用  可用 已用% 挂载点
/dev/sda3                          18G  4.6G   14G   26% /
devtmpfs                          907M     0  907M    0% /dev
tmpfs                             916M     0  916M    0% /dev/shm
tmpfs                             916M  8.5M  908M    1% /run
tmpfs                             916M     0  916M    0% /sys/fs/cgroup
/dev/sda1                         197M  109M   88M   56% /boot
tmpfs                             184M     0  184M    0% /run/user/0
192.168.133.131:/home/nfstestdir   18G  3.7G   15G   21% /mnt

更改配置以后,再来挂载新增的配置看看是否能挂载

showmount -e 192.168.133.131
Export list for 192.168.133.131:
/home/nfstestdir 192.168.133.0/24
/tmp             192.168.133.132

但是挂载却提示拒绝访问

[root@aminglinux-02 ~]# mount -t nfs 192.168.133.131:/tmp/ /mnt/
mount.nfs: access denied by server while mounting 192.168.133.131:/tmp/

拒绝访问,因为服务端export文件配置出错,因为配置为运行客户端IP访问,所有IP因为客户端IP

成功挂载,期间并没有重启过NFS服务

[root@localhost ~]# mount -t nfs 192.168.133.131:/tmp/ /mnt/
[root@localhost ~]# df -h
文件系统              容量  已用  可用 已用% 挂载点
/dev/sda3              18G  4.6G   14G   26% /
devtmpfs              907M     0  907M    0% /dev
tmpfs                 916M     0  916M    0% /dev/shm
tmpfs                 916M  8.5M  908M    1% /run
tmpfs                 916M     0  916M    0% /sys/fs/cgroup
/dev/sda1             197M  109M   88M   56% /boot
tmpfs                 184M     0  184M    0% /run/user/0
192.168.133.131:/tmp   18G  3.7G   15G   21% /mnt
[root@localhost ~]# ls /mnt/
1           pear                   systemd-private-d9b09a459c77414185b8904d468ad948-vmtoolsd.service-JG7cv3  test.com.log-20170816
111         percona-version-check  test.com.log
aming.sock  php-fcgi.sock          test.com.log-20170814
mysql.sock  rsync                  test.com.log-20170815

服务端A机器

/etc/exports 新增一条配置
/tmp/ 192.168.133.131(rw,sync,no_root_squash)

使用命令,让配置立即生效(目前B机器上是挂载着的)

exportfs -arv
[root@aminglinux-02 ~]# exportfs -avr
exporting 192.168.133.131:/tmp  // 这个配置成服务端的IP,这样配置是错误的,必须配置成运行挂载的客户端IP才对
exporting 192.168.133.0/24:/home/nfstestdir

14.5 NFS客户端问题

centos 6 比较常见
NFS 4版本会有该问题
案例:
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody

解决方法:

1、客户端挂载时加上 -o nfsvers=3
客户端和服务端都需要

2、 vim /etc/idmapd.conf
把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务

15.1 FTP介绍

FTP多用于Windows传文件到linux

rz sz在文件超过4G,就不能用了

FTP介绍

  1. FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
  2. FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
  3. 小公司用的多,大企业不用FTP(多用自动化发布工具),因为不安全

15.2/15.3 使用vsftpd搭建ftp

yum install -y vsftpd

创建用户

  1. 这个软件包,是可以使用系统级别的账户去登录。自然而然的,如果这个账户和密码给到用户手上,用户也可以通过这个账户和密码通过SSH登录到机器上的,所以这个方式登录ftp就不安全,最好不要使用
  2. 为了安全,给ftp创建虚拟用户,映射成一个系统用户,这个用户即使给了用户和密码你也是没有办法去通过ssh登录到服务器

创建普通用户

目的是为了让虚拟用户做一个映射的

useradd -s /sbin/nologin virftp

编辑虚拟用户的密码文件

定义用户名,密码

vim /etc/vsftpd/vsftpd_login

为了便于区分,显示了行号(:set nu)

1 testuser1      //奇数行,为用户
2 aminglinux    //偶数行,为密码
3 user1            //奇数行,为用户
4 aaaaa1111    //偶数行,为密码

对虚拟用户的密码文件加权限

chmod 600 /etc/vsftpd/vsftpd_login

将虚拟用户的密码文件转换为计算机可以识别的文件

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 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                 //连接ftp超时时间(秒)
data_connection_timeout=120         //数据传输的超时时间(秒)
max_clients=10                                //最多允许同时几个终端连接

创建虚拟用户的家目录

mkdir /home/virftp/testuser1

创建一个测试文件

touch /home/virftp/testuser1/aming.txt

修改虚拟用户目录的主和组

chown -R virftp:virftp /home/virftp

因为是映射到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
  1. /etc/pam.d/vsftpd 这个是用于认证的一个文件,登录ftp需要一个认证的过程,例如,我通过什么形式去认证,认证的时候去哪里找密码库;输入用户密码的时候是否正确
  2. /lib64/security/pam_userdb.so,centos6区分32位和64位,一定要注意这个文件是存在的(lib64或lib32)

编辑vsftpd的配置文件

vim /etc/vsftpd/vsftpd.conf
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO    //改为NO
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access
anon_upload_enable=NO   //打开注释,改为NO
#
# Uncomment this if you want the anonymous FTP user to be able to create
# 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

完成以上配置以后

启动服务

systemctl status vsftpd.service
[root@aminglinux-02 ~]# systemctl restart vsftpd.service
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.

报错,因为配置是照文档复制粘贴的,一直想不到哪里出错;查了将近两小时发现就是更改vim /etc/vsftpd/vsftpd.conf某段配置的时候后面多出了1个空格,删除之后就正常了

检查服务是否开启

[root@aminglinux-02 ~]# ps -aux |grep vsftp
root      2523  0.0  0.0  52708   568 ?        Ss   03:18   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      2527  0.0  0.0 112664   976 pts/0    R+   03:19   0:00 grep --color=auto vsftp

查看21端口是否在监听

[root@aminglinux-02 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:37872           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1244/nginx: master
tcp        0      0 0.0.0.0:42832           0.0.0.0:*               LISTEN      1128/rpc.statd
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      1225/rpc.mountd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1203/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2026/master
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1244/nginx: master
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -
tcp6       0      0 :::3306                 :::*                    LISTEN      1835/mysqld
tcp6       0      0 :::60495                :::*                    LISTEN      1128/rpc.statd
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::20048                :::*                    LISTEN      1225/rpc.mountd
tcp6       0      0 :::38323                :::*                    LISTEN      -
tcp6       0      0 :::21                   :::*                    LISTEN      2523/vsftpd
tcp6       0      0 :::22                   :::*                    LISTEN      1203/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      2026/master
tcp6       0      0 :::2049                 :::*                    LISTEN      -

测试 为了方便测试,安装一个linux上的客户端

yum install -y lftp

登录

lftp [用户]@[服务端IP]
lftp testuser1@127.0.0.1
口令:
lftp testuser1@127.0.0.1:~> ls
-rwxrwxrwx    1 1002     1002            0 Aug 24 17:53 aming.txt

通过命令ls 可以查看到之前创建的文件,可见,已经成功连接

常用命令

get aming.txt 会直接下载到当前目录
quit 退出ftp

转载于:https://my.oschina.net/nova12315/blog/1784804

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

  1. 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3

    14.4 exportfs命令 由于配置了no_root_squash的权限所以有如下结果: 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp yum ...

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

    14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp 14.4 exportfs命令: exportfs命令是跟nfs-ut ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 1. exportfs命令 一般情况下重启服务器上nfs服务时,需把客户端上的挂载先卸载掉,以免进程后面杀不掉.当客户端服务器 ...

  4. 14.4-14.5 NFS的exportfs命令,NFS客户端问题

    14.4 exportfs命令 NFS服务不能随便停止,若要停止服务,首先要卸载客户端共享目录的挂载状态 #umount -l /mnt 如果共享的客户端有数百台,可以在服务端利用exportfs批量 ...

  5. exportfs命令和FTP服务

    一.exportfs 命令 1.常用选项命令: -a :表示全部挂载或者卸载 -r:表示重新挂载 -u:表示卸载某一个目录 -v:表示显示共享目录 2.编辑/etc//exports:增加以下内容 / ...

  6. exportfs+NFS客户端问题

    1exportfs命令 原理图: 假如要是A上面的NFS服务停掉了,但是B和C还在挂载着A分享的分区,就不可以正常工作了,由于B和C上面的进程是d(不可中断进程),一旦A停止了B和C一定会出问题,也不 ...

  7. 服务器所属文件变成nobody,NFS(expirtfs命令,NFS客户端创建新文件所属组和所属主都为nobody)(示例代码)...

    一.exportfs命令 nfs进程不能随便从新启动,如果不得已要重启,必须把客户端的挂载目录卸载,然后在从新启动. 这时候就可以用exportfs命令 -a             全部挂载或者全部 ...

  8. Ubuntu 14.04使用命令行安装VirtualBox

    Ubuntu 14.04使用命令行安装VirtualBox 基本安装命令: #sudo sh -c 'echo "deb http://download.virtualbox.org/vir ...

  9. MySQL笔记14:常用命令

    mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用 ...

最新文章

  1. 查杀linux线程指令
  2. tomcat与iis公用80端口(已经发布.net项目现在开发Java项目时tomcat在eclipse中localhost:8080打不开问题)...
  3. 5G NR — 频率、频段、载波、载频、载波带宽
  4. git 配置组合指令_Git命令行基本操作
  5. MongoDB 进阶-关联查询
  6. Android 4.0新增Space及GridLayout初谈
  7. mysql 设置按天分表_MySQL 优化实战记录
  8. opencv轻松入门面向python下载_OpenCV轻松入门:面向Python
  9. 十五、详述 IntelliJ IDEA 插件的安装及使用方法
  10. 台式电脑键盘字母乱了_键盘侠的育儿经利用键盘引导学龄前儿童正确使用电脑、学习英文字母和拼音...
  11. jquery1.4 API 区别与更新中文版(beta)
  12. Several ports (8080, 8009) required by Tomcat v9.0 Server at localhost are already in use.解决方案
  13. android 图库分析,Android开发之ImageSwitcher相册功能实例分析
  14. 16进制颜色码转化rgba
  15. MATLAB 数学应用 微分方程 常微分方程 选择ODE求解器
  16. C#选择文件的对话框和选择文件夹的对话框
  17. Python实验报告一 python基础试题练习
  18. 编译安装zabbix时遇到configure: error: no acceptable C compiler found in $PATH 问题解决
  19. 四位行波进位加法器_加法器学习记录
  20. 六大设计模式原则-迪米特法则

热门文章

  1. RemObjects Data Abstract数据库软件的最佳框架
  2. Altera_MAX_Plus_II_v10.2破解软件下载安装
  3. 贪婪:人性可怕而难以自弃的劣根性
  4. ssh: Could not resolve hostname gitee.com: Name or service not knownfatal: Could not read from remo
  5. k8s kubernetes-dashboard 免密+客户端证书登录
  6. 弗洛伊德(Floyd)算法
  7. 关于数字电路与模拟电路隔离
  8. php soapclient 参数,序列化 – 序列化PHP SOAPClient对象
  9. Riber 的两项研究 MBE 订单
  10. 复合型人才八种能力_转型中的勘察设计企业如何提升总承包项目管理能力?