linux学习lesson57



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服务

猜你喜欢

转载自blog.csdn.net/InfiniteIdea_Go/article/details/84930957