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

exportfs命令

exportfs命令用来管理当前NFS共享的文件系统列表。

常用选项

  • -a:全部卸载或全部挂载
  • -r:重新挂载
  • -u:卸载某个目录
  • -v:显示共享目录
  • 常用组合:exportfs -arv
  • 服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效。

注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统。

以上操作都在服务端进行!

测试

在服务端的/etc/exports配置文件中,增加一行。把/tmp/目录单独共享给192.168.159.132这个ip。

[[email protected] ~]# vim /etc/exports
......
/tmp 192.168.159.132(rw.sync,no_root_squash)

重新使配置文件生效:
[[email protected] ~]# exportfs -arv
exporting 192.168.159.132:/tmp
exporting 192.168.159.0/24:/home/nfstestdir

检查客户端是否有权限访问服务端文件:
[[email protected] ~]# showmount -e 192.168.159.131
Export list for 192.168.159.131:
/home/nfstestdir 192.168.159.0/24
/tmp             192.168.159.132
// 发现并没有重启nfs服务,配置就已经生效了

在客户端上将tmp目录挂载到mnt目录下
[[email protected] ~]# mount -t nfs 192.168.159.131:/tmp/ /mnt/

[[email protected] ~]# df -h
文件系统              容量  已用  可用 已用% 挂载点
......
192.168.159.131:/tmp   16G  5.2G   11G   33% /mnt

// 现在客户端服务器上的/mnt/目录就是服务端服务器的/tmp/目录

在客户端的/mnt/目录下创建文件,并查看目录下的文件,能看到新建的文件1.txt和2.txt文件的属组属主都是root
[[email protected] ~]# touch /mnt/1.txt
[[email protected] ~]# ls -l /mnt
总用量 0
-rw-r--r--. 1 root root  0 1月  17 21:15 1.txt

再看服务端的/tmp/目录,1.txt文件的属组和属主也都是root
[[email protected] ~]# ls -l /tmp/
总用量 0
-rw-r--r--. 1 root root  0 1月  17 21:15 1.txt
  • 这是因为服务端的配置文件中,使用了no_root_squash,所以root用户就不受约束,在客户端上的挂载点下就可以想在本地盘使用root用户一样,是不受限制的(通常情况下,不限制root用户的比较多。)

NFS客户端问题

  • NFS 4版本会有该问题
  • 客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
  • 客户端挂载时加上 -o nfsvers=3
  • 客户端和服务端都需要
  • vim /etc/idmapd.conf //
  • 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务

在centos6中,遇到的问题比较多,针对的NFS 4版本有这个问题

  • 问题:客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody,虽然已经定义了 no_root_squash 不在限制root用户,最终创建完文件后发现属主和属组不是root或者是限定的1000,而是显示的是 nobody ,这就是NFS 4版本出现的问题,尤其是在centos6 系统上
  • 解决办法:
    • 方法一:是在客户端挂载的时候,加上-o nfsvers=3 ,意思就是指定NFS的版本为 3 ,不在用4的版本

      • mount -t nfs -o nfsvers=3 192.168.202.130:/tmp/ /mnt/

        • 若是不想卸载,直接挂载,可以使用mount -t nfs -oremount,nfsvers=3 192.168.202.130:/tmp/ /mnt/ (前提是先挂载上去)
    • 方法二:更改配置文件vim /etc/idmapd.conf ,把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务
      • 在cnetos7中,本身是没有rpcidmapd服务的,只需要重启rpcbind服务就可以了

FTP 介绍

FTP(file transfer protocol)文件传输协议,用于在Internet上控制文件的双向传输。FTP主要作用是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷贝到本地计算机,或把本地文件传送到远程计算机。
该服务在小公司用的比较多,由于FTP服务的安全性较差,所以大公司不使用该服务。

使用vsftpd 搭建ftp服务

centos 上自带vsftpd 软件包

  • 安装

    [[email protected] ~]# yum install -y vsftpd

  • 创建用户

    vsftpd可以使用系统级别的用户进行登录,但是这样做不安全,所以需要使用vsftpd创建一个虚拟用户。在此创建一个系统普通用户的作用是使vsftpd的虚拟用户来进行映射,然后完成数据的传输。

    [[email protected] ~]# useradd -s /sbin/nologin virftp

  • 编辑虚拟用户的密码文件

    [[email protected] ~]# vim /etc/vsftpd/vsftpd_login
    testuser1
    123456
    user1
    112233
    // 注意,配置文件中的奇数行为用户名,偶数行为密码。

    配置完需要给密码文件配置权限
    [[email protected] ~]# chmod 600 /etc/vsftpd/vsftpd_login

  • 将文本形式的密码文件转化成计算机识别的二进制文件

    [[email protected] ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
    [[email protected] ~]# ls -l /etc/vsftpd/
    ......
    -rw-------. 1 root root 30 1月 17 15:08 vsftpd_login
    -rw-r--r--. 1 root root 12288 1月 17 15:12 vsftpd_login.db
    // 生成了一个vsftpd_login.db 文件,这个文件是不能cat的

  • 创建虚拟用户配置文件

    创建配置文件目录:
    [[email protected] ~]# mkdir /etc/vsftpd/vsftpd_user_conf

    切换到新建目录下:
    [[email protected] ~]# cd /etc/vsftpd/vsftpd_user_conf/

    创建第一个用户的配置文件:
    [[email protected] 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
    // 空闲用户保留时间,600秒无操作自动断开。
    data_connection_timeout=120
    // 数据传输超时时间
    max_client=10
    // 客户端最大连接数量

  • 创建虚拟用户家目录

    创建虚拟用户家目录:
    [[email protected] vsftpd_user_conf]# mkdir /home/virftp/testuser1

    创建一个文件,登录时可以看见
    [[email protected] vsftpd_user_conf]# touch /home/virftp/testuser1/testftp.txt

    修改虚拟用户家目录的属主属组:
    [[email protected] vsftpd_user_conf]# chown -R virftp:virftp /home/virftp

    编辑vsftpd的认证文件:
    [[email protected] vsftpd_user_conf]# vim /etc/pam.d/vsftpd
    // 这个是登录ftp时的认证文件。
    // 将下面两行代码加在文件开头
    #%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

    // 这两行代码用于指定用户密码文件位置

    // 在centos6中因为区分32位和64版本,所以注意文件是在lib32还是lib64中。如果是32位,路径写了lib64,导致服务启动失败。

  • 编辑vsftpd主配置文件

    [[email protected] vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
    ......
    anonymous_enable=NO
    // 由YES改成NO。不允许匿名用户登录
    anon_upload_enable=NO
    // 取消前面的注释,由YES改成NO。不允许匿名用户上传文件。
    anon_mkdir_write_enable=NO
    // 取消前面的注释,由YES改成NO。不允许创建目录
    ......
    在文件最后加入下面内容:
    chroot_local_user=YES
    guest_enable=YES
    guest_username=virftp
    // 开启虚拟用户和系统用户的映射
    virtual_use_local_privs=YES
    // 告诉服务使用虚拟用户
    user_config_dir=/etc/vsftpd_user_conf
    // 定义虚拟用户配置文件路径
    allow_writeable_chroot=YES

  • 启动服务

    启动服务:
    [[email protected] vsftpd_user_conf]# systemctl start vsftpd

    查看进程:
    [[email protected] vsftpd_user_conf]# ps aux | grep vsftp
    root 2795 0.0 0.0 53216 572 ? Ss 16:11 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
    root 2797 0.0 0.0 112680 976 pts/0 R+ 16:11 0:00 grep --color=auto vsftp
    // 进程已经存在

    查看监听端口:
    [[email protected] vsftpd_user_conf]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp6 0 0 :::21 :::* LISTEN 2795/vsftpd

    // vsftpd 服务监听21端口
    // FTP服务监听21端口;sshd监听22端口;telnet监听23端口。

  • 测试

    安装linux下的ftp客户端:
    [[email protected] ~]# yum install -y lftp

    使用虚拟用户登录ftp客户端:
    [[email protected] ~]# lftp [email protected]
    口令:

    lftp [email protected]:~> ls
    drwxr-xr-x 2 1004 1005 25 Jan 17 07:24 testuser1
    lftp [email protected]:/> ls testuser1
    -rw-r--r-- 1 1004 1005 0 Jan 17 07:24 testftp.txt
    // 使用ls命令查看虚拟用户家目录下的文件有哪些,发现之前创建的文件。
    // ls 报错500,没有关闭selinux

    lftp [email protected]:/> ?
    // ? 可以查看ftp支持哪些命令。

    将testftp.txt 传输到本机:
    lftp [email protected]:/> get testuser1/testftp.txt
    lftp [email protected]:/> quit
    [[email protected] ~]# ls
    testftp.txt

    // 接受文件的目录为当前目录,即进入ftp服务的目录。
    // 常用的命令put、get

windows 上可以使用filezilla 软件测试ftp服务。

  • 使用xshell实现FTP功能

    • 方法一:使用sftp

    新建会话→名称自定→协议选择SFTP→主机为远程主机ip→端口号默认22。

    连接远程主机,使用常用的用户名密码,即可登录ftp。

    右键远程连接属性,sftp可以设置下载的文件存放位置

    • 方法二:使用xftp
      在xshell中退出当前会话使用组合键:Ctrl+Alt+F,提示下载,下载安装后即可使用。

原文地址:http://blog.51cto.com/754599082/2062249

时间: 2024-10-29 20:49:07

exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp服务的相关文章

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

一.exportfs命令NFS服务端的nfs服务不能随意重启,如果需要重启服务端的nfs服务,需要先把挂载服务端共享目录的所有客户端的挂载先全部卸载客户端执行:#umount /mnt/ //提示如下umount.nfs4: /mnt: device is busy解决:第一种办法:退出/mnt目录[[email protected] mnt]# cd[[email protected] ~]# umount /mnt/第二种方法:#umount -l /mnt/ 先卸载掉客户端的挂载,然后在重

FTP:介绍、vsftpd搭建ftp、xshell使用xftp传输文件、pure-ftpd搭ftp

             FTP介绍 (rz和sz: 传文件    rz:window-->linux    sz:linux-->window  文件超过4GB则不管用)                       使用vsftpd搭建ftp服务 1.安装:yum install -y vsftpd 2.创建用户: (vsftpd默认支持是可以使用系统账号登录的,但是这样不安全,因为我们系统的用户是可以登录,然后去操作我们的操作系统的.所以使用虚拟账号体系,创建虚拟用户,虚拟用户是不能登陆到

15.1-15.3 FTP,使用vsftpd搭建FTP服务

FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输. FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机. 小公司用的多,大企业不用FTP,因为不安全 使用vsftpd搭建ftp服务 1 centos上自带vsftpd 2 #yum install -y vsftp

14.4exportfs命令14.5NFS客户端问题15.1FTP介绍 使用vsftpd搭建ftp

14.4 exportfs命令在服务器上运行了exportfs -arv然后在客户端showmount -e 192.168.133.130查看是否连接14.5 NFS客户端问题在centos6就会有以上的情况mount -t nfs -o nfsers=3 192.168.137.129:/tmp/ /mnt/15.1 FTP介绍将这个文件的字符转换成电脑识别的二进制字符,转换后下面的目录多了一个vsftpd_login.db文件,它是无法用cat查看的vim testuser1vim /et

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

14.4 exportfs命令 重启nfs服务需要把所有挂载点卸载掉,如果一台机器有多个挂载点,不能一一去卸载挂载点,用exportfs -arv命令: 1. 编辑exports配置文件,添加一条新的共享目录: [[email protected] ~]# vim /etc/exports {no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大} 添加内容(hao1服务端的共享目录,hao2客户端的ip): /tmp 192.168.211.129(rw,sy

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

- 14.4 exportfs命令 - 14.5 NFS客户端问题 - 15.1 FTP介绍 - 15.2/15.3 使用vsftpd搭建ftp # 14.4 exportfs命令 - exportfs命令 和NFS一起安装的 例: - 配置了一个共享目录,之后需要新增.更改.机器或者目录:首先需要更改配置,重启NFS服务,但是远程客户端正在使用NFS服务,重启服务端的NFS服务就会对远程的客户端有影响,比如,造成服务异常,进程异常,有很大可能导致系统坏掉 - 到了这种时候,只能去一台一台机器的

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

exportfs命令 加入我们之前已经配置了nfs的共享目录,之后要增加更改或增加共享目录,我们需要更改配置文件,重启,如果远程客户端正在使用,此时就会一直挂载着,这时候就有问题 使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用exportfs即可 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 #vim /etc/exports //增加一行 /tmp/ 192.168.37.0/2

8.27 exports命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp服务

1.exports命令 由于开启NFS服务时,会有其他系统访问共享的目录,所以当服务端重启NFS服务时,会导致其他系统NFS服务出现异常,因此NFS服务不能随便重启,如果确实需要重启服务,需要先将客户端挂载的NFS目录卸载,执行如下命令: umount -l /mnt 卸载完成后,再重启NFS服务 如果不想卸载共享目录,则可以使用exports命令,exports常用的选项如下: -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 需要重启服

exportfs命令、NFS客户端问题、使用vsftpd搭建ftp

一:exportfs命令 常用选项为[-aruv] -a :全部挂载或者卸载 -r :重新挂载 -u :卸载某一个目录 -v :显示共享的目录 使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs即可.接下来我们做一个实验,先改一下服务端的配置文件: #vim /etc/exports 增加一行: /tmp/ 192.168.0.0/24(rw,sync,no_root_squash) #no_root_squash 表示不限定root