exportfs命令的常用选项为-a、-r、-u和-v,各选项的含义如下:
-a:表示全部挂载或者卸载;
-r:表示重新挂载;
-u:表示卸载某一个目录;
-v:表示显示共享的目录。
当改变/etc/exports配置文件后,使用exportfs命令不需要重启NFS服务。
首先修改服务端(128)的配置文件,新增一行“/tmp 192.168.30.129(rw,sync,no_root_squash)”;
在服务端执行exportfs命令;
[root@yuioplvlinux-128 ~]# exportfs -arv
exporting 192.168.30.129:/tmp
exporting 192.168.30.129:/home/nfstestdir
在客户端(129),查看挂载的目录,并将其卸载;
[root@yuioplvlinux-129 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 3.3G 25G 12% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
192.168.30.128:/home/nfstestdir 28G 7.6G 21G 28% /mnt
[root@yuioplvlinux-129 ~]# umount /mnt
[root@yuioplvlinux-129 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 3.3G 25G 12% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
挂载NFS;
[root@yuioplvlinux-129 ~]# showmount -e 192.168.30.128
Export list for 192.168.30.128:
/tmp 192.168.30.129
/home/nfstestdir 192.168.30.129
[root@yuioplvlinux-129 ~]# mount -t nfs 192.168.30.128:/tmp /mnt/
[root@yuioplvlinux-129 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 3.3G 25G 12% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
192.168.30.128:/tmp 28G 7.6G 21G 28% /mnt
在客户端(129)创建一个123.txt的文件;
[root@yuioplvlinux-129 ~]# cd /mnt/
[root@yuioplvlinux-129 mnt]# touch 123.txt
[root@yuioplvlinux-129 mnt]# ll 123.txt
-rw-r--r-- 1 root root 0 6月 22 23:33 123.txt
在服务端(128)查看;
[root@yuioplvlinux-128 ~]# cd /tmp/
[root@yuioplvlinux-128 tmp]# ll
总用量 1980
-rw-r--r-- 1 root root 0 6月 22 23:33 123.txt
-rw-r--r-- 1 root root 1321673 6月 20 23:30 mysql_all.sql
-rw-r--r-- 1 root root 30807 6月 20 23:30 mysql_d.sql
可以看到123.txt的所有者和所属组都为root。
在早期的CentOS版本(CentOS6)使用NFS的4版本会存在一个问题,客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody,这时候有两种方式去解决。
1)客户端挂载时加上加上 -o nfsvers=3,指定NFS的版本为3
[root@yuioplvlinux-129 ~]# mount -t nfs -o,nfsvers=3 192.168.30.128:/tmp /mnt/
[root@yuioplvlinux-129 ~]# mount -t nfs -oremount,nfsvers=3 192.168.30.128:/tmp /mnt/ #重新挂载
[root@yuioplvlinux-129 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 3.3G 25G 12% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
192.168.30.128:/tmp 28G 7.6G 21G 28% /mnt
2)在服务端和客户端都修改/etc/idmapd.conf配置文件;
找到如图所示的这一行,去掉前面的#号,将其修改为“Domain = xxx.com”,这个地址可自定义,然后重启rpcidmapd服务即可解决。
FTP是File Transfer Protocol(文件传输协议)的英文缩写,用于在因特网上控制文件的双向传输。它同时也是一个应用程序,用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,以访问服务器上的大量程序和信息。
FTP的主要作用就是让用户连接一个远程计算机,并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。FTP方便传输数据,所以个人用户很多,但在企业中用的越来越少,因为FTP是有一定安全隐患的。
CentOS有自带的FTP软件vsftpd,默认是没有安装的,需要用yum安装,“yum install -y vsftpd”。
vsftpd默认可以支持使用系统账户登录,但是这样不太安全,建议使用虚拟账号来登录;
[root@yuioplvlinux-128 ~]# useradd -s /sbin/nologin virftp
创建与虚拟账号相关的文件,该文件的奇数行为用户名,偶数行为上一行的用户密码;
[root@yuioplvlinux-128 ~]# vim /etc/vsftpd/vsftpd_login
[root@yuioplvlinux-128 ~]# cat /etc/vsftpd/vsftpd_login
test1
123456
test2
qweasd
更改文件的权限,提升安全级别;
[root@yuioplvlinux-128 ~]# chmod 600 /etc/vsftpd/vsftpd_login
因为vsftpd使用的密码文件不是明文的,需要生成随意的库文件;
[root@yuioplvlinux-128 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
创建与虚拟账号相关的目录及配置文件;
[root@yuioplvlinux-128 ~]# mkdir /etc/vsftpd/vsftpd_user_conf
用户的配置文件时单独存在的,每一个用户都有一个自己的配置文件,文件名和用户名一致;
[root@yuioplvlinux-128 ~]# cd /etc/vsftpd/vsftpd_user_conf
[root@yuioplvlinux-128 vsftpd_user_conf]# vim test1
[root@yuioplvlinux-128 vsftpd_user_conf]# cat test1
local_root=/home/virftp/test1
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
local_root为test1账号的家目录,anonymous_enable用来限制是否允许匿名账号登录,write_enable=YES表示可写,local_umask指定umask值,anon_upload_enable表示是否允许匿名账号上传文件,anon_mkdir_write_enable表示是否允许匿名账号可写,其它参数不用关心。
创建FTP共享目录,并设定所属用户和所属组;
[root@yuioplvlinux-128 vsftpd_user_conf]# mkdir /home/virftp/test1
[root@yuioplvlinux-128 vsftpd_user_conf]# touch /home/virftp/test1/yu.txt
[root@yuioplvlinux-128 vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
编辑配置文件/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
编辑/etc/vsftpd/vsftpd.conf文件,修改以下内容:
1)将anonymous_enable=YES 改为 anonymous_enable=NO;
2)将#anon_upload_enable=YES 改为 anon_upload_enable=NO;
3)将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO;
4)在文件最后新增如下内容:
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
然后启动vsftpd服务;
[root@yuioplvlinux-128 ~]# systemctl start vsftpd
[root@yuioplvlinux-128 ~]# ps aux | grep vsftpd
root 5314 0.0 0.0 53260 576 ? Ss 01:06 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 5316 0.0 0.0 112720 972 pts/2 R+ 01:06 0:00 grep --color=auto vsftpd
[root@yuioplvlinux-128 ~]# 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:443 0.0.0.0:* LISTEN 868/nginx: master p
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:41730 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:45220 0.0.0.0:* LISTEN 4300/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 4282/rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 4314/rpc.mountd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 868/nginx: master p
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 856/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1101/master
tcp6 0 0 :::2049 :::* LISTEN -
tcp6 0 0 :::39619 :::* LISTEN -
tcp6 0 0 :::33124 :::* LISTEN 4300/rpc.statd
tcp6 0 0 :::3306 :::* LISTEN 2085/mysqld
tcp6 0 0 :::111 :::* LISTEN 4282/rpcbind
tcp6 0 0 :::20048 :::* LISTEN 4314/rpc.mountd
tcp6 0 0 :::21 :::* LISTEN 5314/vsftpd
tcp6 0 0 :::22 :::* LISTEN 856/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1101/master
测试是否搭建成功,首先安装lftp客户端软件,使用命令“yum install -y lftp”;
[root@yuioplvlinux-128 ~]# lftp [email protected]
口令:
lftp [email protected]:~> ls
-rw-r--r-- 1 1126 1126 0 Jun 22 16:52 yu.txt
使用lftp成功登录vsftpd,并且ls列出test1用户家目录下面的yu.txt。
新建一个会话,协议选择为SFTP。然后输入主机IP,端口还是22;
登录成功后,默认的目录是root目录下;
sftp:/root> ls
dr-xr-x--- 11 root root 4096 Jun 23 01:16 .
dr-xr-xr-x 19 root root 4096 May 28 21:29 ..
-rw-r--r-- 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r-- 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r-- 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r-- 1 root root 100 Dec 29 2013 .cshrc
-rw-r--r-- 1 root root 129 Dec 29 2013 .tcshrc
-rw------- 1 root root 1257 Mar 20 07:49 anaconda-ks.cfg
-rw------- 1 root root 119372 Jun 23 01:24 .bash_history
drwx------ 2 root root 104 Mar 23 23:10 .ssh
-rw------- 1 root root 66 Jun 20 23:45 .lesshst
lrwxrwxrwx 1 root root 12 Mar 31 01:30 yu
-rw-r--r-- 1 root root 19 Mar 27 20:51 a1
lrwxrwxrwx 1 root root 3 Mar 31 01:53 a2
-rw-r--r-- 1 root root 3441 Mar 17 12:34 default
-rw-r--r-- 1 root root 41 Mar 31 22:27 test.txt
-rw-r--r-- 1 root root 0 Apr 11 23:37 io.txt
-rw-r--r-- 1 root root 8 Apr 24 22:56 2.txt
drwxr-xr-x 2 root root 35 Apr 26 03:59 grep
-rw-r--r-- 1 root root 12288 Jun 13 23:26 .3.txt.swp
-rw------- 1 root root 8413 Jun 14 22:31 .viminfo.tmp
drwxr-xr-x 3 root root 19 Jun 23 01:16 .local
drwxr-xr-x 3 root root 18 Jun 23 01:16 .config
-rw-r--r-- 1 root root 162 Apr 19 23:43 Centos7-Base-163.repo
-rw-r--r-- 1 root root 1572 Apr 19 23:48 CentOS7-Base-163.repo
drwxr----- 3 root root 19 Apr 20 00:25 .pki
-rw-r--r-- 1 root root 48 Apr 24 22:07 3.txt
-rw-r--r-- 1 root root 132 Apr 21 10:32 a.txt
-rw-r--r-- 1 root root 503 Apr 24 21:36 1.txt
drwxr-xr-x 2 root root 35 Apr 26 22:45 sed
drwx------ 3 root root 17 Apr 26 23:55 .cache
drwxr-xr-x 2 root root 22 Apr 27 04:10 awk
-rw-r--r-- 1 tcpdump tcpdump 3562 May 8 02:30 1.cap
-rw-r--r-- 1 root root 0 May 12 12:07 cron.log
drwxr-xr-x 4 root root 32 May 14 23:14 rsync
-rw-r--r-- 1 root root 0 May 14 22:50 123.txt
-rw-r--r-- 1 root root 148 Jun 1 00:04 phpniuocvowv
-rw------- 1 root root 1024 Jun 12 22:40 .rnd
-rw------- 1 root root 6578 Jun 14 22:31 .viminfz.tmp
-rw------- 1 root root 2798 Jun 20 23:27 .mysql_history
-rw------- 1 root root 6559 Jun 23 01:03 .viminfo
设置sftp传输的文件夹;
使用get命令即可传输文件。
sftp:/root> get 1.cap
Fetching /root/1.cap to 1.cap
sftp: received 3.47 KB in 0.06 seconds