文档章节

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

lgsxp
 lgsxp
发布于 06/25 00:02
字数 1260
阅读 24
收藏 0

14.4 exportfs命令

当我们修改nfs的配置文件exports后,需要重新启动nfs服务才能让配置文件生效。但是很多情况下nfs的客户端还挂载着服务端的共享目录,如果重启就会影响客户端的使用。

如果把客户端卸载,再修改配置文件,再重启nfs,客户端再重新挂载,客户端很多的情况下,这样操作会很繁琐。

我们可以使用exportfs命令,可以不用卸载客户端和nfs服务不停止的情况下,重载配置文件。

//exportfs命令常用选项
-a:表示全部挂载或者全部卸载
-r:表示重新挂载
-u:表示卸载某一个目录
-v:表示显示共享目录

在服务端上修改配置文件:

vim /etc/exports
/tmp/ 192.168.87.130(rw,sync,no_root_squash) //加入这一行配置,增加共享目录/tmp/

执行exportfs命令:重新加载配置文件

exportfs -arv //重新加载服务

在客户端查看共享目录:

showmount -e 192.168.87.128 

最后把新增的共享目录,在客户端上挂载就可以了:

mount -t nfs -o 192.168.87.128:/tmp  /mnt/  //-t挂载类型,-o nolock不加锁

14.5 NFS客户端问题

NFS4通常有这个问题:客户端挂载共享目录后,不管是root用户还是系统普通用户,在共享目录里创建目录和文件时的主和组都是nobody

解决方案1:客户端挂载目录时,加上-o和nfsvers=3

mount -t nfs -o remount,nfsvers=3 192.168.87.128:/tmp/ /mnt/

解决方案2:修改服务端和客户端的配置文件:

vim /etc/idmapd.conf
#Domain = local.domain.edu 改为 Domain = xxx.com //xxx.com 随意定义
然后再重启rpcidmapd服务

15.1 FTP介绍

FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。小公司用的多,大企业不用FTP,因为不安全。

用rz和sz传文件,文件大小超过4G就会出现问题。

15.2/15.3 使用vsftpd搭建ftp

安装vsftpd:

yum install -y vsftpd

vsftpd支持用linux系统用户登录,但是这样很不安全,容易暴露系统用户和密码。

我们创建虚拟用户,并映射到系统普通用户来使用vsftpd:

useradd -s /sbin/nologin virftp  //创建系统普通用户
vim /etc/vsftpd/vsftpd_login  //创建虚拟用户和密码的文件,奇数行为用户名,偶数行为密码,多个用户就写多行
user1
123456
user2
888888

chmod 600 /etc/vsftpd/vsftpd_login //改权限

将文本的密码文件装换成二进制的密码文件:增加安全性

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

创建虚拟用户的目录和配置文件:

mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
vim user1
##配置文件内容
local_root=/home/virftp/user1   //为虚拟用户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    //最大客户端数

创建虚拟用户testuser1的家目录:

mkdir /home/virftp/user1

创建一个测试文件

touch /home/virftp/user1/abc.txt

修改/home/virftp/的主和组:

chown -R virftp:virftp /home/virftp //改家目录的主和组为virftp

定义认证的文件/etc/pam.d/vsftpd:

vim /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

##密码文件,centos7为64位系统,所以库文件路径为/lib64/security/pam_userdb.so,32位系统为:/lib/security/pam_userdb.so 这个文件一定要存在且写对,不然虚拟用户登录ftp服务时会认证失败

修改全局配置文件/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               //是否允许虚拟用户映射
guest_username=virftp                //这个就是虚拟用户映射到的系统用户virftp
virtual_use_local_privs=YES             //
user_config_dir=/etc/vsftpd/vsftpd_user_conf  //创建的虚拟用户的目录
allow_writeable_chroot=YES

启动服务

systemctl start vsftpd

测试: 可以在window下安装一个客户端软件:filezilla client

© 著作权归作者所有

共有 人打赏支持
lgsxp
粉丝 4
博文 77
码字总数 180560
作品 0
惠州
如何学习Liunx和个人学习大纲

提醒不甘平凡的我 2009大学刚刚毕业(不是正规大学,没来北京之前,在家里不是打架就是闲逛,家里人怕早晚出事,索性花钱上了这个“大学”)找了一家IT培训机构。当时的培训机构出名两家:“...

jcpokai521
2017/02/28
0
0
Linux编程操作知识整理(continued)

前言:是自己对一种知识若干本的整合,当然是有主有次的,想尝试做下主题阅读方面的笔记。具体的内容整合到自己知识库里了。 一。文件I/O APUE里文件I/O讲的是“如何打开,读取,写入以及关闭...

im天行
2012/11/17
0
0
2018-3-27 Linux学习笔记

14.4 exportfs命令 exportfs命令是随nfs-utils安装包一起安装的. exportfs命令的应用场景: 假设在服务器上已配置了NFS服务,共享了NFS目录.过段时间,需要增加另一个共享目录,那么我们需要编辑...

XiaoluHuang
06/28
0
0
Linux系统在信息社会的发展

随着信息技术的高速发展并迅速渗透到社会生活的各个方面,Linux日益成为人们学习、工作、生活不可缺少的基本工具,再过不了几年,不会使用Linux,就会象不识字一样使人举步维艰。进入大学,L...

linuxprobe16
09/09
0
0
写博客的好处--摘自大棚Linux

你觉得自己懂了未必真的懂了。写作是自我反省,自我提升的一个过程。 2. 让别人懂才是真的懂。写作是强迫你给别人讲懂知识。 3. 看似浪费时间,实则节省时间。知识总会遗忘,实验证实阅读自己...

aust_niuroutan
04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
2
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部