本文共 6089 字,大约阅读时间需要 20 分钟。
exportfs命令用来管理当前NFS共享的文件系统列表。
-v:显示共享目录
注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统。
以上操作都在服务端进行!
在服务端的/etc/exports配置文件中,增加一行。把/tmp/目录单独共享给192.168.159.132这个ip。[root@localhost ~]# vim /etc/exports....../tmp 192.168.159.132(rw.sync,no_root_squash)重新使配置文件生效:[root@localhost ~]# exportfs -arvexporting 192.168.159.132:/tmpexporting 192.168.159.0/24:/home/nfstestdir检查客户端是否有权限访问服务端文件:[root@localhost ~]# showmount -e 192.168.159.131Export list for 192.168.159.131:/home/nfstestdir 192.168.159.0/24/tmp 192.168.159.132// 发现并没有重启nfs服务,配置就已经生效了在客户端上将tmp目录挂载到mnt目录下[root@localhost ~]# mount -t nfs 192.168.159.131:/tmp/ /mnt/[root@localhost ~]# df -h文件系统 容量 已用 可用 已用% 挂载点......192.168.159.131:/tmp 16G 5.2G 11G 33% /mnt// 现在客户端服务器上的/mnt/目录就是服务端服务器的/tmp/目录在客户端的/mnt/目录下创建文件,并查看目录下的文件,能看到新建的文件1.txt和2.txt文件的属组属主都是root[root@localhost ~]# touch /mnt/1.txt[root@localhost ~]# ls -l /mnt总用量 0-rw-r--r--. 1 root root 0 1月 17 21:15 1.txt再看服务端的/tmp/目录,1.txt文件的属组和属主也都是root[root@localhost ~]# ls -l /tmp/总用量 0-rw-r--r--. 1 root root 0 1月 17 21:15 1.txt
解决办法:
方法一:是在客户端挂载的时候,加上-o nfsvers=3 ,意思就是指定NFS的版本为 3 ,不在用4的版本
FTP(file transfer protocol)文件传输协议,用于在Internet上控制文件的双向传输。FTP主要作用是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷贝到本地计算机,或把本地文件传送到远程计算机。
该服务在小公司用的比较多,由于FTP服务的安全性较差,所以大公司不使用该服务。
centos 上自带vsftpd 软件包
安装
[root@localhost ~]# yum install -y vsftpd
创建用户
vsftpd可以使用系统级别的用户进行登录,但是这样做不安全,所以需要使用vsftpd创建一个虚拟用户。在此创建一个系统普通用户的作用是使vsftpd的虚拟用户来进行映射,然后完成数据的传输。
[root@localhost ~]# useradd -s /sbin/nologin virftp
编辑虚拟用户的密码文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd_login
testuser1123456user1112233// 注意,配置文件中的奇数行为用户名,偶数行为密码。配置完需要给密码文件配置权限
[root@localhost ~]# chmod 600 /etc/vsftpd/vsftpd_login将文本形式的密码文件转化成计算机识别的二进制文件
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@localhost ~]# ls -l /etc/vsftpd/......-rw-------. 1 root root 30 1月 17 15:08 vsftpd_login-rw-r--r--. 1 root root 12288 1月 17 15:12 vsftpd_login.db// 生成了一个vsftpd_login.db 文件,这个文件是不能cat的创建虚拟用户配置文件
创建配置文件目录:
[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf切换到新建目录下:
[root@localhost ~]# cd /etc/vsftpd/vsftpd_user_conf/创建第一个用户的配置文件:
[root@localhost vsftpd_user_conf]# vim 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// 空闲用户保留时间,600秒无操作自动断开。data_connection_timeout=120// 数据传输超时时间max_client=10// 客户端最大连接数量创建虚拟用户家目录
创建虚拟用户家目录:
[root@localhost vsftpd_user_conf]# mkdir /home/virftp/testuser1创建一个文件,登录时可以看见
[root@localhost vsftpd_user_conf]# touch /home/virftp/testuser1/testftp.txt修改虚拟用户家目录的属主属组:
[root@localhost vsftpd_user_conf]# chown -R virftp:virftp /home/virftp编辑vsftpd的认证文件:
[root@localhost vsftpd_user_conf]# vim /etc/pam.d/vsftpd// 这个是登录ftp时的认证文件。// 将下面两行代码加在文件开头#%PAM-1.0auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_loginaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login// 这两行代码用于指定用户密码文件位置
// 在centos6中因为区分32位和64版本,所以注意文件是在lib32还是lib64中。如果是32位,路径写了lib64,导致服务启动失败。
编辑vsftpd主配置文件
[root@localhost vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
......anonymous_enable=NO// 由YES改成NO。不允许匿名用户登录anon_upload_enable=NO// 取消前面的注释,由YES改成NO。不允许匿名用户上传文件。anon_mkdir_write_enable=NO// 取消前面的注释,由YES改成NO。不允许创建目录......在文件最后加入下面内容:chroot_local_user=YESguest_enable=YESguest_username=virftp// 开启虚拟用户和系统用户的映射virtual_use_local_privs=YES// 告诉服务使用虚拟用户user_config_dir=/etc/vsftpd_user_conf// 定义虚拟用户配置文件路径allow_writeable_chroot=YES启动服务
启动服务:
[root@localhost vsftpd_user_conf]# systemctl start vsftpd查看进程:
[root@localhost vsftpd_user_conf]# ps aux | grep vsftproot 2795 0.0 0.0 53216 572 ? Ss 16:11 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.confroot 2797 0.0 0.0 112680 976 pts/0 R+ 16:11 0:00 grep --color=auto vsftp// 进程已经存在查看监听端口:
[root@localhost vsftpd_user_conf]# netstat -lntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::21 :::* LISTEN 2795/vsftpd// vsftpd 服务监听21端口
// FTP服务监听21端口;sshd监听22端口;telnet监听23端口。测试
安装linux下的ftp客户端:
[root@localhost ~]# yum install -y lftp使用虚拟用户登录ftp客户端:
[root@localhost ~]# lftp testuser1@127.0.0.1口令:lftp testuser1@127.0.0.1:~> ls
drwxr-xr-x 2 1004 1005 25 Jan 17 07:24 testuser1lftp testuser1@127.0.0.1:/> ls testuser1-rw-r--r-- 1 1004 1005 0 Jan 17 07:24 testftp.txt// 使用ls命令查看虚拟用户家目录下的文件有哪些,发现之前创建的文件。// ls 报错500,没有关闭selinuxlftp testuser1@127.0.0.1:/> ?
// ? 可以查看ftp支持哪些命令。将testftp.txt 传输到本机:
lftp testuser1@127.0.0.1:/> get testuser1/testftp.txtlftp testuser1@127.0.0.1:/> quit[root@localhost ~]# lstestftp.txt// 接受文件的目录为当前目录,即进入ftp服务的目录。
// 常用的命令put、getwindows 上可以使用filezilla 软件测试ftp服务。
使用xshell实现FTP功能
新建会话→名称自定→协议选择SFTP→主机为远程主机ip→端口号默认22。
连接远程主机,使用常用的用户名密码,即可登录ftp。
右键远程连接属性,sftp可以设置下载的文件存放位置
转载于:https://blog.51cto.com/754599082/2062249