·更改nfs配置文件后,重启nfs服务,那么此时如果有远程客户端正在挂载共享目录,那么先停止nfs服务,就会导致远程客户端挂起。
exportfs这个命令是和nfs-utils这个包一起安装的
exportfs:
-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录
-arv 一般同时使用
·在服务端上更改/etc/exports 目录,增加一条共享目录
[root@localhost ~]# vim /etc/exports
[root@localhost ~]# exportfs -arv exporting 192.168.65.129:/tmp exporting 192.168.65.0/24:/home/nfstestdir
·在客户端上查看共享目录,并卸载原先目录,挂载/tmp/:
[root@localhost ~]# showmount -e 192.168.65.128 Export list for 192.168.65.128: /home/nfstestdir 192.168.65.0/24 /tmp 192.168.65.129 [root@localhost ~]# umount /mnt/ [root@localhost ~]# mount -t nfs 192.168.65.128:/tmp/ /mnt [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 18G 3.8G 15G 21% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup 192.168.65.128:/tmp 18G 3.8G 15G 21% /mnt /dev/sda1 197M 97M 100M 50% /boot tmpfs 98M 0 98M 0% /run/user/0
(192.168.65.128:/tmp 已挂载完成)
·在客户端上新建一个文件
[root@localhost ~]# vim /mnt/1212.txt [root@localhost ~]# ll /mnt/1212.txt -rw-r--r-- 1 root root 39 3月 20 21:56 /mnt/1212.txt
·查看服务端上共享过去的该文件信息:
[root@localhost ~]# ll /tmp/1212.txt -rw-r--r-- 1 root root 39 3月 20 21:56 /tmp/1212.txt
(客户端和服务端上的属主和属组都是root,是因为在nfs配置文件中,定义了对/tmp共享目录下,no_root_squash不限制root)
一般不限制root的情况比较多。
NFS 4版本会有该问题(尤其是在CentOS6上)
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
要解决问题有2种方法:
1:
客户端挂载时加上 -o nfsvers=3 (指定nfs版本为3)
mount -t nfs -o nfsvers=3 192.168.65.128:/tmp/ /mnt
mount -t nfs -oremount,nfsvers=3 192.168.65.128:/tmp/ /mnt (须在重新挂载后才能remount)
2:
客户端和服务端都需要
vim /etc/idmapd.conf //
把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随便定义吧),然后再重启rpcidmapd服务,CentOS7中没有次服务,直接重启rpcbind就行
·FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
·FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
·小公司用的多,大企业不用FTP,因为不安全
CentOS自带vsftpd包
[root@localhost ~]# yum install -y vsftpd (安装过程省略) [root@localhost ~]# useradd -s /sbin/nologin virftp ##创建虚拟用户 编辑虚拟用户的密码文件: [root@localhost ~]# vim /etc/vsftpd/vsftpd_login
(内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行)
[root@localhost ~]# chmod 600 /etc/vsftpd/vsftpd_login
(更改密码文件的权限)
将以上文本文件转化成计算机可以识别的二进制文件
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db [root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf ##创建虚拟用户配置文件所在目录 [root@localhost ~]# cd !$ cd /etc/vsftpd/vsftpd_user_conf [root@localhost vsftpd_user_conf]#vim testuser1 ##编辑的虚拟用户配置文件要和用户名一致
local_root=/home/virftp/testuser1 定义虚拟用户家目录
anonymous_enable=NO 是否允许匿名用户
write_enable=YES 是否允许可写
local_umask=022 umask
anon_upload_enable=NO 是否允许匿名用户上传
anon_mkdir_write_enable=NO 是否允许匿名用户创建和上传
idle_session_timeout=600 超时断开
data_connection_timeout=120 数据传输超时时间
max_clients=10 最大客户端
[root@localhost vsftpd_user_conf]# mkdir /home/virftp/testuser1 ##创建虚拟用户家目录 [root@localhost vsftpd_user_conf]# touch /home/virftp/testuser1/alex.txt [root@localhost vsftpd_user_conf]# chown -R virftp:virftp /home/virftp [root@localhost vsftpd_user_conf]# vim /etc/pam.d/vsftpd ##定义密码文件位置
[root@localhost vsftpd_user_conf]# 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
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
[root@localhost vsftpd_user_conf]# systemctl start vsftpd [root@localhost vsftpd_user_conf]# ps aux|grep vsftpd root 1938 0.0 0.0 53212 572 ? Ss 22:08 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 1942 0.0 0.0 112676 984 pts/0 S+ 22:08 0:00 grep --color=auto vsftpd [root@localhost vsftpd_user_conf]# netstat -lntp
·安装ftp客户端
[root@localhost vsftpd_user_conf]# yum install -y lftp (过程省略) [root@localhost vsftpd_user_conf]# lftp testuser1@127.0.0.1 口令: lftp testuser1@127.0.0.1:~> ls -rw-r--r-- 1 1002 1002 0 Mar 26 13:34 alex.txt lftp testuser1@127.0.0.1:/> ? ##查看可用的命令
lftp testuser1@127.0.0.1:/> quit [root@localhost vsftpd_user_conf]# ls alex.txt testuser1
新建一个会话,ip为本机服务器ip,用SFTP连接
输入用户名密码登录
sftp:/root> get /tmp/user.sql Fetching /tmp/user.sql to user.sql sftp: received 7.08 KB in 0.01 seconds
定义本地文件夹:(get的文件存放位置)
还有一个方法:
在xshell中,Ctrl + Alt + F ,下载xftp插件
下载插件安装
可能需要Product key才能使用
2018-3-27 14周2次课 NFS(下)、FTP(上)
原文:http://blog.51cto.com/11530642/2091397