2019独角兽企业重金招聘Python工程师标准>>>
FTP在实践中使用的比较多。今天实践一下VSFTPD的部署。
#1 centos7 Vsftpd ###1.1 安装vsftpd yum install -y vsftpd
###1.2 配置ftp vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
chroot_local_user=YES
#最后添加如下行解决无法登陆的问题
allow_writeable_chroot=YES
###1.3 启动/重新启动ftp systemctl start vsftpd.service
(原service start vsftpd)
systemctl restart vsftpd.service
(原service restart vsftpd)
###1.4 设置开机启动ftp systemctl enable vsftpd.service
(原chkconfig vsftpd on)
###1.5 建立ftp账户 useradd -d /www/ftp -s /sbin/nologin ftpadmin
/www/ftp 为ftp目录
###1.6 修改密码 passwd ftpadmin
###1.7 设置账户权限 chown -R ftpadmin.ftpadmin /www/ftp
如果系统启用了防火墙和SELinux,那么还要做以下配置。 ####1.8 防火墙添加FTP服务: firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
####1.9 设置SELinux: getsebool -a | grep ftp
setsebool -P ftpd_full_access on
###1.10 使用filezilla来访问下FTP,测试FTP CURD操作。 ftpadmin/pasword
#2 ubuntu14.04 vsftpd ###2.1 彻底卸载vsftpd sudo apt-get --purge remove vsftpd
###2.2 安装vsftpd sudo apt-get install vsftpd
###2.3 备份配置文件 sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bk
###2.4 检查是否已启动 netstat -antl
###2.5 配置 vi /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
#最后添加如下行解决无法登陆的问题
allow_writeable_chroot=YES
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
###2.6 建立ftp账户 sudo useradd -d /ftp -s /bin/bash ftpuser
/ftp 为ftp目录
###2.7 修改密码 passwd ftpuser
###2.8 设置账户权限 chown -R ftpuser.ftpuser /ftp
###2.9 重启服务 sudo service vsftpd restart
###2.10 使用filezilla来访问下FTP,测试FTP CURD操作。 ftpuser/pasword
#3 好的实践 ###3.1 ftp服务器: (1)、匿名用户可登录浏览,但不能下载
(2)、设置4个不同等级的用户使用此ftp服务器(虚拟用户),分别如下
用户名:ftpmain 路径/home/vsftpd 管理用户,可对ftp服务器的所有文件进行任何操作
用户名:down 路径/home/vsftpd/down 下载用户,只可下载此目录下的文件
用户名:upload 路径/home/vstfpd/upload 上传用户,在此目录下可上传下载删除等操作
用户名:test 路径/home/vsftpd/test 测试目录
###3.2 vsftpd日志解决方案 表明FTP服务器记录上传下载的情况xferlog_enable=YES
表明将记录的上传下载情况写在xferlog_file所指定的文件中,即xferlog_file选项指定的文件中 xferlog_std_format=YESxferlog_file=/var/log/xferlog
###3.3 启用双份日志。在用xferlog文件记录服务器上传下载情况的同时,
vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也将用来记录服务器的传输情况
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
###3.4 修改欢迎信息
sudo vi /etc/vsftpd.conf 末尾添加行
dirmessage_enable=YES
然后到ftp根目录设置.message内容
cd /ftp
sudo vi .message
输入:Welcome to ftp server ,enjoy it !
sudo service vsftpd restart
###3.5 超时设置 idle_session_timeout=600
#空闲连接超时data_connection_timeout=120
#数据传输超时ACCEPT_TIMEOUT=60
#PAVS请求超时connect_timeout=60
#PROT模式连接超时
###3.6 允许匿名上传
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
###3.7 一些命令 sudo cat /etc/hosts
查看本地hostftp localhost
ftp登陆本地
anonymous_enable=YES 匿名访问
finger ftp 查看ftp的根目录可以用这个命令
more /etc/passwd | grep ftp 查看ftp默认的根目录
gedit /etc/passwd ,把其中的ftp项修改成自己需要的. vi打开文件,/为查找命令 修改ftp默认的根目录
pgrep vsftpd 或者列出所有进程 ps -d 查看vsftpd是否启动
sudo chown root:root ftp , ftp为目录 赋予那个组
###3.8 权限模式 7 5 5
用户 组 任何人
r+w+x r+x r+x
4+2+1 4+0+1 4+0+1 = 755
权限模式是由用户,文件组及其他所有人各组数值分别相加得出的。从上面的图表中应该能看出个大概。
Read 4 - 允许读文件
Write 2 - 允许写/修改文件
eXecute1 - 读/写/删除/修改/目录
权限模式实例
模式 字符表示 说明
0477 -r--rwxrwx 所有者仅可读(4),其他及组可读写执行(7)
0677 -rw-rwxrwx 所有者仅可读写(6),其他及组可读写执行(7)
0444 -r--r--r-- 所有均仅可读(4)
0666 -rw-rw-rw- 所有均仅可读写(6)
0400 -r-------- 所有者仅可读(4),组及其他无任何权限(0)
0600 -rw------- 所有者仅可读写(6),组及其他无任何权限(0)
0470 -r--rwx--- 所有者仅可读,组可读写执行,其他则无任何权限
0407 -r-----rwx 所有者仅可读,其他可读写执行,组则无任何权限
0670 -rw-rwx--- 所有者仅可读写,组可读写执行,其他则无任何权限
0607 -rw----rwx 所有者仅可读写,其他可读写执行,组则无任何权限
###3.8 其它
安装完后不用做任何配置既可用匿名方式进行访问,默认的ftp文件夹为/srv/ftp
ftp://192.168.1.111/ ftp 在浏览器 访问
开放重命名,删除文件等权限,不开的话没法续传。
anon_other_write_enable=YES
###3.9 cmds_allowed
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER
cmds_allowed=FEAT,REST,ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,DELE,RETR
# ABOR - abort a file transfer 取消文件传输
# CWD - change working directory 更改目录
# DELE - delete a remote file 删除文件
# LIST - list remote files 列目录
# MDTM - return the modification time of a file 返回文件的更新时间
# MKD - make a remote directory 新建文件夹
# NLST - name list of remote directory
# PASS - send password
# PASV - enter passive mode
# PORT - open a data port 打开一个传输端口
# PWD - print working directory 显示当前工作目录
# QUIT - terminate the connection 退出
# RETR - retrieve a remote file 下载文件
# RMD - remove a remote directory
# RNFR - rename from
# RNTO - rename to
# SITE - site-specific commands
# SIZE - return the size of a file 返回文件大小
# STOR - store a file on the remote host 上传文件
# TYPE - set transfer type
# USER - send username
# less common commands:
# ACCT* - send account information
# APPE - append to a remote file
# CDUP - CWD to the parent of the current directory
# HELP - return help on using the server
# MODE - set transfer mode
# NOOP - do nothing
# REIN* - reinitialize the connection
# STAT - return server status
# STOU - store a file uniquely
# STRU - set file transfer structure
# SYST - return system type
#4 引用及感谢 1.http://wiki.ubuntu.org.cn/Vsftpd
2.http://forum.ubuntu.org.cn/viewtopic.php?t=464142
3.http://pcvc.net/blog/2015/08/09/centos-7-installation-configuration-do-vsftpd-ftp-service/
4.http://www.baidu.com/link?url=Vkk0J001A2kX4yDj2X4nDkFc7_TndIoCPZzv5BvpiGv72oHnI53E9mQ7zBZbXTRNz0oMCQi1_gucQpmmxI3u0a&wd=&eqid=d5017af9000006a70000000256418716
2016-07-10 21:03:25 星期日
2017-02-14 Centos 6.5 vsftpd
yum install -y vsftpd
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
chroot_local_user=YES
userlist_deny=NO
文件尾添加此行useradd -d /home/ftp -s /sbin/nologin ftpadmin
passwd ftpadmin
chown -R ftpadmin.ftpadmin /home/ftp
echo ftpadmin >> /etc/vsftpd/user_list
service vsftpd start
find / -name vsftpd
rpm -qa | grep vsftpd