1 exportfs命令
常用选项
-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录
以下操作在服务端上
vim /etc/exports //增加
/tmp/ 192.168.139.112/24(rw,sync,no_root_squash)
重新加载exportfs -arv //不用重启nfs服务,配置文件就会生效
[root@linux01 ~]# exportfs -arv
exporting 192.168.139.112:/tmp
exporting 192.168.139.0/24:/home/nfstestdir
查看共享挂载目录:
[root@linux02 ~]# showmount -e 192.168.139.111
Export list for 192.168.139.111:
/home/nfstestdir 192.168.139.0/24
/tmp 192.168.139.112
挂载tmp目录:
[root@linux02 ~]# mount -t nfs 192.168.139.111:/tmp /mnt
以下操作在客户端
创建挂载目录和挂载:
[root@linux02 ~]# mkdir /testnfs
[root@linux02 ~]# mount -t nfs -onolock 192.168.133.130:/tmp /testnfs
创建文件:
[root@linux02 ~]# touch /testnfs/11.txt
在服务端查看:
[root@linux01 ~]# ls -l /tmp/
total 0
-rw-r--r-- 1 root root 0 Dec 2 21:54 11.txt
2 nfs客户端问题
NFS 4版本会有该问题(centos6可能会有这种问题)
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
客户端挂载时加上 -o nfsvers=3
客户端和服务端都需要
[root@linux01 ~]# vim /etc/idmapd.conf //
把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务(centos7重启rpcbind)
挂载目录出现的问题:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
原因:
- nfs服务没启动
- 防火墙没关闭
- selinux没关闭
注意
:如果有其他机器挂载该目录,nfs服务不能随便重启,否则会出现问题;可以使用exportfs命令使nfs服务重新挂载即可
3 ftp介绍
FTP
是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP
的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP,因为不安全
对于小企业可以会用来发布代码,上传文件,这样不太规范,管理不方便
超过4G文件rz,sz传输就有问题,或者是通过跳板机传输也不行
4 使用vsftpd搭建ftp服务
(因为考虑到安全性文件,所以登录用户使用虚拟用户,用虚拟用映射到系统的普通用户,不能通过ssh登录服务器上)
centos上自带vsftpd
yum安装vsftpd
[root@linux01 ~]# yum install -y vsftpd
创建ftp用户:
[root@linux01 ~]# useradd -s /sbin/nologin virftp
编辑虚拟用户配置文件:
[root@linux01 ~]# vim /etc/vsftpd/vsftpd_login //内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行
user
123456
设置配置文件权限:
[root@linux01 ~]# chmod 600 /etc/vsftpd/vsftpd_login
将配置文件转换为计算识别二进制文件:
[root@linux01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //将文本文件转换为计算机识别的二进制文件
查看生成的文件:
[root@linux01 vsftpd_user_conf]# ls -l /etc/vsftpd/
total 32
-rw------- 1 root root 125 Aug 3 2017 ftpusers
-rw------- 1 root root 361 Aug 3 2017 user_list
-rw------- 1 root root 5187 Nov 25 19:02 vsftpd.conf
-rwxr--r-- 1 root root 338 Aug 3 2017 vsftpd_conf_migrate.sh
-rw------- 1 root root 12 Nov 25 18:43 vsftpd_login
-rw-r--r-- 1 root root 12288 Nov 25 18:46 vsftpd_login.db
drwxr-xr-x 2 root root 18 Nov 25 18:52 vsftpd_user_conf
创建虚拟用目录:
[root@linux01 ~]# mkdir /etc/vsftpd/vsftpd_user_conf //创建虚拟用户目录
编辑虚拟用户:
[root@linux01 ~]# cd /etc/vsftpd/vsftpd_user_conf
定义虚拟用户:
[root@linux01 vsftpd_user_conf]# vim user //加入如下内容,每行都不能有多余的空格,否则会报错(这个配置文件名需要和vsftpd_login 里的用户名一样)
local_root=/home/virftp/user //分享目录
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 //超时时间120秒
max_clients=10 //最大连接用户10个
创建共享目录
[root@linux01 vsftpd_user_conf]# mkdir /home/virftp/user
[root@linux01 vsftpd_user_conf]# touch /home/virftp/user/test.txt
[root@linux01 vsftpd_user_conf]# chown -R virftp:virftp /home/virftp //因为最终映射为virftp用户,需要设置属主和属组,否则没有权限上传下载
编辑vsftpd配置文件:
[root@linux01 vsftpd_user_conf]# vim /etc/pam.d/vsftpd //在最前面加上
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是32位系统,lib64应该是lib,否则报错找不到
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是32位系统,lib64应该是lib,否则报错找不到
编辑vsftpd.conf配置文件:
[root@linux01 vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
将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 //使guset_username生效
guest_username=virftp //
virtual_use_local_privs=YES //告诉服务是使用虚拟服务
user_config_dir=/etc/vsftpd/vsftpd_user_conf //虚拟用户配置文件
allow_writeable_chroot=YES
启动vsftpd服务
[root@linux01 vsftpd_user_conf]# systemctl start vsftpd //启动vsftpd服务
查看ftp服务端口:
[root@linux01 vsftpd_user_conf]# netstat -lnpt
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:48677 0.0.0.0:* LISTEN 1403/rpc.statd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 860/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1088/master
tcp6 0 0 :::47101 :::* LISTEN 1403/rpc.statd
tcp6 0 0 :::21 :::* LISTEN 1693/vsftpd
tcp6 0 0 :::22 :::* LISTEN 860/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1088/master
21
端口ftp
服务
22
端口sshd
服务
23
端口telnet
服务