exportfs 命令
当 nfs 服务端需要增加共享目录时, 更改配置文件后, 需要重启服务, 但是客户端还在使用共享目录, 正常情况下需要客户端先卸载共享目录, 再在服务端操作, 如果客户端很多时, 就需要用到 exportfs 命令来快速配置了
exportfs 常用选项
-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录
测试
服务端操作
- [root@akuilinux01 ~]# vim /etc/exports
- /home/nfstestdir 192.168.21.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
- /tmp/ 192.168.21.0/24(rw,sync,no_root_squash)
- [root@akuilinux01 ~]# exportfs -arv
- exporting 192.168.21.0/24:/tmp
- exporting 192.168.21.0/24:/home/nfstestdir
- exportfs -arv // 不用重启 nfs 服务, 配置文件就会生效
客户端操作
- [root@akuilinux02 ~]# showmount -e 192.168.21.128
- Export list for 192.168.21.128:
- /tmp 192.168.21.0/24
- /home/nfstestdir 192.168.21.0/24
- [root@akuilinux02 ~]# mkdir /akui
- [root@akuilinux02 ~]# mount -t nfs 192.168.21.128:/tmp /akui
- [root@akuilinux02 ~]# touch /akui/12121.txt
- [root@akuilinux02 ~]# ll /akui/
总用量 8
-rw-r--r-- 1 root root 0 6 月 22 21:52 12121.txt
srw-rw-rw- 1 root root 0 6 月 22 21:02 aming.sock
srwxrwxrwx 1 1001 1001 0 6 月 22 21:02 mysql.sock
-rw-r--r-- 1 root root 3108 6 月 19 09:34 nginx_access.log
-rw-r--r-- 1 root root 92 6 月 16 10:10 nginx_access.log-20180615
drwxr-xr-x 3 root root 18 6 月 14 17:32 pear
drwx------ 3 root root 17 6 月 22 21:02 systemd-private-e422dd02155c4b309ecf7d899321d899-chronyd.service-z7tx4P
drwx------ 3 root root 17 6 月 22 21:02 systemd-private-e422dd02155c4b309ecf7d899321d899-vgauthd.service-QVzTM6
drwx------ 3 root root 17 6 月 22 21:02 systemd-private-e422dd02155c4b309ecf7d899321d899-vmtoolsd.service-EPZGUp
srw-rw-rw- 1 root root 0 6 月 22 21:02 www.sock
nfs 客户端问题
NFS 4 版本会有该问题
客户端挂载共享目录后, 不管是 root 用户还是普通用户, 创建新文件时属主, 属组为 nobody
一种方法是客户端挂载时加上 -o nfsvers=3
重新挂载
mount -t nfs -oremount,nfsvers=3 192.168.21.128:/tmp /akui
另一种是客户端和服务端都需要
vim /etc/idmapd.conf // 把 "#Domain = local.domain.edu" 改为 "Domain = xxx.com" (这里的 xxx.com, 随意定义吧), 然后再重启 rpcidmapd 服务
FTP 介绍
FTP 是 File Transfer Protocol(文件传输协议, 简称文传协议) 的英文简称, 用于在 Internet 上控制文件的双向传输.
FTP 的主要作用就是让用户连接一个远程计算机 (这些计算机上运行着 FTP 服务器程序), 并查看远程计算机中的文件, 然后把文件从远程计算机复制到本地计算机, 或把本地计算机的文件传送到远程计算机.
小公司用的多, 大企业不用 FTP, 因为不安全
大企业用的是自动化发布平台
使用 vsftpd 搭建 ftp 服务
centos 上自带 vsftpd
安装 vsftpd
[root@akuilinux01 ~]# yum install -y vsftpd
创建一个用来普通用户 virftp(映射虚拟用户用来上传下载文件) 并设置不能登录
[root@akuilinux01 ~]# useradd -s /sbin/nologin virftp
编辑虚拟用户的密码文件, 格式为奇数行为用户名, 偶数行为密码, 多个用户就写多行, 并设置权限为 600
- [root@akuilinux01 ~]# vim /etc/vsftpd/vsftpd_login
- user1
- 123456
- user2
- 123456
- [root@akuilinux01 ~]# chmod 600 /etc/vsftpd/vsftpd_login
把文本密码文件转换成二进制文件
- [root@akuilinux01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
- [root@akuilinux01 ~]# ls /etc/vsftpd/
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vsftpd_login vsftpd_login.db
创建虚拟用户配置文件目录
[root@akuilinux01 ~]# mkdir /etc/vsftpd/vsftpd_user_conf
创建虚拟用户的配置文件, 名字为虚拟用户的用户名
- [root@akuilinux01 ~]# cd !$
- cd /etc/vsftpd/vsftpd_user_conf
- [root@akuilinux01 vsftpd_user_conf]# vim user1
- local_root=/home/virftp/user1 #定义虚拟用户的家目录
- anonymous_enable=NO #是否允许匿名用户
- write_enable=YES #是否允许可写
- local_umask=022 #定义创建新文件和目录的权限
- anon_upload_enable=NO #是否允许匿名用户可上传
- anon_mkdir_write_enable=NO #是否允许匿名用户可写和创建目录
- idle_session_timeout=600 #连接 ftp 的空闲时间
- data_connection_timeout=120 #数据传输的超时时间
- max_clients=10 #最大客户端
创建虚拟用户的家目录并创建一个文件
- [root@akuilinux01 ~]# mkdir /home/virftp/user1
- [root@akuilinux01 ~]# touch /home/virftp/user1/akui.txt
设置 virftp 用户家目录的属主属组
[root@akuilinux01 ~]# chown -R virftp:virftp /home/virftp/
在认证文件里面定义密码文件
- [root@akuilinux01 ~]# vim /etc/pam.d/vsftpd
- #%PAM-1.0
- auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
- account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
- [root@akuilinux01 ~]# ls /lib64/security/pam_userdb.so
- /lib64/security/pam_userdb.so
编辑 vsftp 的主配置文件
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 #允许映射
- guest_username=virftp #映射到 virftp
- virtual_use_local_privs=YES #告诉服务现在使用的是虚拟用户
- user_config_dir=/etc/vsftpd/vsftpd_user_conf #定义虚拟用户的配置文件目录
- allow_writeable_chroot=YES
systemctl start vsftpd 启动服务
测试
可以在 windows 上安装 filezille client 软件
在 linux 上
- [root@akuilinux01 ~]# yum install -y lftp
- [root@akuilinux01 ~]# lftp user1@127.0.0.1
口令:
- lftp user1@127.0.0.1:~> ls
- -rw-r--r-- 1 1003 1003 0 Jun 22 14:45 akui.txt
- lftp user1@127.0.0.1:/> get akui.txt #下载文件到当前目录,? 回车可以查看可以使用的命令
- lftp user1@127.0.0.1:/> quit
- [root@akuilinux01 ~]# ls
1.txt akui.txt anaconda-ks.cfg
来源: http://www.bubuko.com/infodetail-2655368.html