exportfs命令
避免客户端正在使用NFS,服务器端修改相应设置后影响客户端使用,使用exportfs命令就可以解决此问题
还是上篇博客里说到的,Yolks2机器(ip:192.168.248.129)做服务器,Yolks1机器(ip:192.168.248.128)做客户端;
export命令常用选项
- a 全部挂载或者全部卸载
- r 重新挂载
- u 卸载某一个目录
- v 显示共享目录
1.Yolks2服务器端执行export命令
[root@yolks2 ~]# exportfs -arv #可以使配置文件重新生效exporting 192.168.248.0/24:/home/nfstestdir
2.Yolks2机器编辑/etc/exports文件,增加以下代码
/tmp 192.168.248.128(rw,sync,no_root_squash)
执行步骤1相同的重新加载配置命令
exportfs -arv
3.Yolks1机器客户端通过showmount命令查看是否有权限:Yolks2上新增的配置客户端已经可以访问,并且整个过程没有重启服务,即没有影响客户端使用
[root@yolks-001 mnt]# showmount -e 192.168.248.129Export list for 192.168.248.129:/home/nfstestdir 192.168.248.0/24/tmp 192.168.248.128
4.客户端卸载/mnt/目录,然后挂载新的Yolks2机器的/tmp/目录上去
[root@yolks-001 ~]# umount /mnt/ #卸载mount[root@yolks-001 ~]# mount -lt nfs 192.168.248.129:/tmp/ /mnt/ #挂载共享/tmp目录到本地/mnt/目录[root@yolks-001 ~]# df -h #查看新的分配文件系统 容量 已用 可用 已用% 挂载点/dev/sda3 18G 4.3G 14G 24% /devtmpfs 901M 0 901M 0% /devtmpfs 911M 0 911M 0% /dev/shmtmpfs 911M 8.7M 903M 1% /runtmpfs 911M 0 911M 0% /sys/fs/cgroup/dev/sda1 197M 158M 39M 81% /boottmpfs 183M 0 183M 0% /run/user/0192.168.248.129:/tmp 18G 3.6G 15G 21% /mnt
6.客户端在/mnt/创建yolks1文件,然后Yolks2机器进行查看是否有文件显示
[root@yolks-001 mnt]# touch yolks1.file
Yolks2机器查看
[root@yolks2 ~]# ls /tmp/ |grep yolks1yolks1.file
查看结果显示已经正常共享
NFS客户端问题
客户端文件属主、属组nobody,问题版本:NFS 4版本会有该问题
问题:客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
系统版本:centos6以下可能会有此问题 解决方案:- 客户端挂载时加上 -o nfsvers=3
- 客户端和服务端都需要 : vim /etc/idmapd.conf
- 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务
FTP介绍
FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP,因为不安全,一般使用git结合自动化部署
使用vsftpd搭建ftp
1.yum安装vsftpd
yum install -y vsftpd
2.新建用户virftp
useradd -s /sbin/nologin virftp
3.编辑配置文件/etc/vsftpd/vsftpd_login添加以下配置:
奇数行为用户名,偶数行为密码,多个用户就写多行
testuser1yolkslinuxuser1aaa111
4.修改文件权限
chmod 600 /etc/vsftpd/vsftpd_login
5.转换为2进制
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
6.创建虚拟用户配置文件所在目录
mkdir /etc/vsftpd/vsftpd_user_conf
7.给用户创建配置文件
根据第3步骤设置的用户名和密码,此处我们需要在第六步目录即/etc/vsftpd/vsftpd_user_conf/下创建和用户名一致的文件
此处我们编辑文件名为testuser1,添加以下配置内容:
local_root=/home/virftp/testuser1 #定义虚拟用户家目录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 #最大客户端
8.创建以上配置设置的虚拟用户家目录
mkdir /home/virftp/testuser1
9.新建目录下创建一个测试文件
touch /home/virftp/testuser1/aming.txt
10.修改用户家目录属主、属组权限
chown -R virftp:virftp /home/virftp
11.定义密码文件位置:/etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_loginaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
如下图:
ps:注意上面的配置路径是指用户登录时,需要寻找对应的配置文件去校验,所以需要保证路径/lib64/security/pam_userdb.so文件在机器上是存在的,并且lib64和机器位数是一致的,此问题大多出现在centos6是的机器,centos7机器按照教程暂时没发现问题。
12.编辑vsftpd的主配置文件:/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=YESguest_enable=YES #开启虚拟用户guest_username=virftp #虚拟用户名virtual_use_local_privs=YES #虚拟用户user_config_dir=/etc/vsftpd/vsftpd_user_confallow_writeable_chroot=YES
13.启动服务并查看进程
启动服务
systemctl start vsftpd
查看进程
[root@yolks2 vsftpd_user_conf]# ps aux |grep vsftpdroot 1559 0.0 0.0 53256 572 ? Ss 23:25 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.confroot 1561 0.0 0.0 112720 984 pts/0 R+ 23:25 0:00 grep --color=auto vsftpd
14.测试
1)yum安装lftp
yum install -y lftp
2)测试命令
[root@yolks2 ~]# lftp testuser1@127.0.0.1口令: lftp testuser1@127.0.0.1:~> get aming.txt #获取文件lftp testuser1@127.0.0.1:/> quit
3)查看本地文件
[root@yolks2 ~]# lsaming.txt anaconda-ks.cfg #aming.txt就是我们通过ftp获取下的问题