文件共享服务ftp

随笔2个月前发布 阴小猿
37 0 0

文件共享服务方案有很多,了解即可

ftp(简单文件传输服务)

提供用户认证机制
可以输入账号密码

python -m SimpleHTTPServer
nginx也提供了文件下载的功能

提供用户认证机制
反向代理,负载均衡
web服务器,静态文件服务器的作用
如ftp服务器的作用

samba(linux和windows之间共享数据)

提供用户认证机制

nfs(主要用这个)

重点学习,工作里用的是
nfs

nginx

平时,简易的快速进行文件下载,下载服务器上的资料
python -m SimpleHTTPServer

搭建ftp服务

1.需要安装vsftpd服务

yum install vsftpd -y

2.修改ftp配置文件,设置账号密码,登录ftp服务器,可以查看某文件夹下的数据资料(共享文件夹)

3.创建一个linux的用户(ftp使用linux的用户信息,不靠谱)
useradd ops01
设置该用户密码
[root@nfs-31 ~]#echo '123456' | passwd --stdin  ops01
Changing password for user ops01.
passwd: all authentication tokens updated successfully.

4.修改ftp配置文件,设置用于共享的目录
[root@nfs-31 ~]#rpm -ql vsftpd |grep '.conf$'
/etc/vsftpd/vsftpd.conf

4.1 关闭所有的匿名用户功能,不安全
找出和匿名用户相关的配置参数
[root@nfs-31 ~]#grep '^anonymous'  /etc/vsftpd/vsftpd.conf
anonymous_enable=NO

4.2添加自定义的共享文件夹配置参数,笔记的解释,别写入linux中,写笔记上,否则可能会导致编码不识别,程序出错

直接在文件最低下,添加如下配置
# 配置解释
# local_root=/data/kefu  指定本地用户的默认数据根目录 
# chroot_local_user=YES 禁锢本地用户的默认数据目录(禁止用户切换到其他目录)
# allow_writeable_chroot=YES 允许ftp用户登录后,可以创建数据

你只需要修改如下三个参数即可
# ftp用户,ops01登录ftp之后,只能看到/test_0224这个文件夹下的数据
## by myself
local_root=/test_0224/
chroot_local_user=YES
allow_writeable_chroot=YES







5.创建用于共享的文件夹
mkdir /test_0224/
touch /test_0224/wenjie.png

别忘记修改文件夹的权限,否则无法读取了,修改为刚才自定义的用户

chown -R ops01:ops01  /test_0224/

[root@nfs-31 ~]#ll -d /test_0224/
drwxr-xr-x 2 ops01 ops01 24 Apr 19 14:53 /test_0224/



6.此时可以重启vsftpd服务
[root@nfs-31 ~]#systemctl restart vsftpd
[root@nfs-31 ~]#
[root@nfs-31 ~]#
[root@nfs-31 ~]#ps -ef|grep vsftpd
root       2221      1  0 15:01 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       2226   1168  0 15:02 pts/0    00:00:00 grep --color=auto vsftpd
[root@nfs-31 ~]#

使用客户端,验证ftp的登录,数据查看

你可以用另一台机器,安装ftp程序,登录vsftpd服务端

yum install ftp -y


登录ftp设备的命令
ftp 机器的ip地址
如

ftp 172.16.1.31
输入账号密码 ops01 123456
进入之后,输入? 查看ftp提供的命令帮助
ftp> pwd  查看当前的ftp目录位置
257 "/"

ftp提供的上传下载
下载功能
ftp> get 
(remote-file) 文杰.png
(local-file) 文杰1.png
local: 文杰1.png remote: 文杰.png
227 Entering Passive Mode (10,0,0,31,149,223).
150 Opening BINARY mode data connection for 文杰.png (0 bytes).
226 Transfer complete.
ftp> 


上传功能
ftp> 
ftp> put
(local-file) /opt/4111111.jpg
(remote-file) 4444444.jpg
local: /opt/4111111.jpg remote: 4444444.jpg
227 Entering Passive Mode (10,0,0,31,185,67).
150 Ok to send data.
226 Transfer complete.

———————————-完成——————–

ftp服务端,关于ftp的软件、配置文件

[root@server ~]# rpm -ql vsftpd
/etc/rc.d/init.d/vsftpd            启动脚本
/etc/vsftpd                            配置文件的目录
/etc/vsftpd/ftpusers                用户列表文件,黑名单
/etc/vsftpd/user_list            用户列表文件,可黑可白(默认是黑名单)
/etc/vsftpd/vsftpd.conf            配置文件
/usr/sbin/vsftpd                    程序本身(二进制的命令)
/var/ftp                                匿名用户的默认数据根目录
/var/ftp/pub                        匿名用户的扩展数据目录


[root@ftp-server ~]# grep -v ^# /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES            支持匿名用户访问    
local_enable=YES                非匿名用户,用linux本地用户认证
write_enable=YES                写总开关(主要针对非匿名用户)
local_umask=022                    遮罩码  file:644  rw- r-- r-- dir:755
dirmessage_enable=YES            启用消息功能
xferlog_enable=YES                开启或启用xferlog日志
connect_from_port_20=YES        支持主动模式(默认被动模式)
xferlog_std_format=YES            xferlog日志格式
listen=YES                        ftp服务独立模式下的监听

pam_service_name=vsftpd            指定认证文件
userlist_enable=YES                启用用户列表(user_list黑名单)
tcp_wrappers=YES                支持tcp_wrappers功能(限流)

匿名模式认证

配置文件,参数解释
[root@chaogelinux ~]# grep '^anon' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES    #允许匿名访问
anon_upload_enable=YES    #允许匿名用户上传
anon_mkdir_write_enable=YES    #允许匿名用户创建目录
anon_other_write_enable=YES    #允许匿名用户修改目录

ftp常用命令

ftp> ascii  # 设定以ASCII方式传送文件(缺省值) 
ftp> bell   # 每完成一次文件传送,报警提示. 
ftp> binary # 设定以二进制方式传送文件. 
ftp> bye    # 终止主机FTP进程,并退出FTP管理方式. 
ftp> case   # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. 
ftp> cd     # 同UNIX的CD命令. 
ftp> cdup   # 返回上一级目录. 
ftp> chmod  # 改变远端主机的文件权限. 
ftp> close  # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. 
ftp> delete # 删除远端主机中的文件. 
ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. 
ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中. 
ftp> help [command] # 输出命令的解释. 
ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. 
ftp> ls [remote-directory] [local-file] # 同DIR. 
ftp> macdef                 # 定义宏命令. 
ftp> mdelete [remote-files] # 删除一批文件. 
ftp> mget [remote-files]    # 从远端主机接收一批文件至本地主机. 
ftp> mkdir directory-name   # 在远端主机中建立目录. 
ftp> mput local-files # 将本地主机中一批文件传送至远端主机. 
ftp> open host [port] # 重新建立一个新的连接. 
ftp> prompt           # 交互提示模式. 
ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中. 
ftp> pwd  # 列出当前远端主机目录. 
ftp> quit # 同BYE. 
ftp> recv remote-file [local-file] # 同GET. 
ftp> rename [from] [to]     # 改变远端主机中的文件名. 
ftp> rmdir directory-name   # 删除远端主机中的目录. 
ftp> send local-file [remote-file] # 同PUT. 
ftp> status   # 显示当前FTP的状态. 
ftp> system   # 显示远端主机系统类型. 
ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机. 
ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
ftp> ! # 从 ftp 子系统退出到外壳。
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...