文件共享服务方案有很多,了解即可
- 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 子系统退出到外壳。
标签:ftp,服务,文件共享,root,vsftpd,file,YES,local
From: https://www.cnblogs.com/btcm409181423/p/18031149