风雨夜,未可歇。独自凭栏,愁绪断肠耶。纵然晴空万里处,何处落归叶!
--你奶奶个球啊,怎么限制用户访问根目录还没限制成功呢!小雨你还稀里里里下个不停~让不让我回家了!
问题无法处理的那一刻,你是否也会像我一样,变成一个猴子~但是不活蹦乱跳了,只剩抓耳挠腮了!
为了避免以后再出现这个问题。得学习,得总结,得成长,得吃饭~饿死我了!
先来看看VSFTP配置文件中各参数的意义:
local_enable=YES # 是否允许本地用户登录 yes=允许 no= 不允许
write_enable=YES # 是否允许登录FTP后的用户,对FTP文件系统进行更改,涉及到命令包括STOR, DELE, RNFR, RNTO, MKD, RMD, APPE 和 SITE等。
local_umask=022 # 新建的文件的权限 为022 0代表 chmod o-0 也就是拥有所有权限 2 代表chmod o-2 代表没有写权限
匿名用户配置
anonymous_enable=YES # 是否允许匿名登录 yes=允许 no= 不允许
ftp_username=ftp # 设置ftp匿名登录时的用户名,默认 ftp
no_anon_password=YES # 匿名用户登录不需要输入密码 默认 YES
deny_email_enable=YES # 以banned_email_file里面的电子邮件为密码的匿名用户不能登录
anon_root # 匿名用户登录后的默认目录,不设置,默认为/var/ftp
anon_upload_enable=YES # 允许匿名登录用户上传文件 默认NO
anon_mkdir_write_enable=YES # 允许匿名登录用户创建目录 默认NO
anon_other_write_enable=NO # 允许匿名用户有较高的写权限包括 删除目录和重命名等 默认NO
anon_world_readable_only=YES # 允许匿名用户下载可读文件 默认YES , 设置为yes时只能下载不能直接在Ftp中阅读。
chown_uploads=YES # 设置是否改变匿名用户上传文件(非目录)的属主。默认值为NO。
其他全部用户生效
dirmessage_enable=YES # 进入目录显示欢迎信息 默认NO
dirlist_enable=YES # 是否允许用户列出目录等 默认 YES 如果设置为No ,所有列表命令都会返回"Permission denied"
dirmessage_enable=NO # 进入新目录时是否显示目录信息 默认No.
message_file=.... # 当dirmessage_enable=yes 时使用。进入新目录时,指定返回哪个信息文件的内容
download_enable=YES # 是否允许下载 默认YES
cmds_allowed # 以逗号分隔的方式列出允许执行的命令,如:cmds_allowed=ls,pwd,PASV,RETR 等,其中USER, PASS and QUIT 等不受限制
deny_file # 以{..,..,..,..}方式列出禁止访问的文件或者路径,如deny_file={*.mp4,*.mov} 默认空
SSL加密协议相关设置
allow_anon_ssl=NO # 是否允许SSL连接,启用SSL后才可以使用此参数,默认NO
ssl_enable=NO # 是否启用ssl 安全连接 默认NO 如果设置为yes,vsftpd将启用openSSL,通过SSL支持安全连接和数据传输。
force_local_logins_ssl=YES # 是否对非匿名用户登录加密 默认yes
force_local_data_ssl=YES # 是否对非匿名用户传输加密 默认yes
force_anon_logins_ssl=NO #匿名用户登录时是否加密 默认为no
force_anon_data_ssl=NO #匿名用户数据传输时是否加密 默认为no
ssl_sslv2=NO # 是否开户sslv2协议。 默认NO ,如果设置为yes,前提为ssl_enable=YES。
ssl_sslv3=NO # 是否开户sslv3协议。 默认NO ,如果设置为yes,前提为ssl_enable=YES。
dsa_cert_file # 为ssl加密连接指定dsa证书位置 默认 无
ssl_ciphers # 是否指定加密方式 默认 DES-CBC3-SHA
日志文件
dual_log_enable=NO # 是否启用双日志 默认NO 如果设置为yes,则分别在/var/log/xferlog、var/log/vsftpd.log里记录日志。前一个为wu-ftpd格式,可被通用工具分析,后一个为vsftpd的专用格式。
xferlog_enable=YES # 激活上传和下传的日志 依赖 参数xferlog_std_format的设置
xferlog_std_format=YES # 使用标准格式记录上传、下传日志
syslog_enable=NO # 是否关闭vsftpd的日志并记录系统日志 默认NO ,如果设置为YES,系统日志会记录到/var/log/vsftpd.log,而VSFTPD的日志进程将停止。
传输模式
ascii_download_enable=YES # 是否启用ascii模式下载文件 默认 NO
ascii_upload_enable=YES # 是否启用ascii模式上传文件 默认 NO
async_abor_enable=NO # 是否启用强制中止传输文件 默认 NO 启用此参数是为了避免中止传输时的客户端挂死。只有特殊情况下才使用。
background=NO # 是否后台启动vsftpd监听 默认 NO 启用后,VSFTPD将监听进程置于后台,当访问vsftpd服务时,console 会返回到shell 模式
check_shell=YES # 检测是否有可用的shell环境 默认 YES
userlist_enable=YES # 启用user_list 文件的检查 默认 NO 为YES时检查user_list文件中的用户列表,为NO 时不检测该文件
userlist_deny=NO # 只有在userlist_enable 启用时有效,默认YES . yes 表示user_list文件中的用户不允许登录ftp,NO表示只允许user_list文件中的用户登录FTP
超时设置
accept_timeout # 尝试连接时间 默认 60 单位 秒
data_connection_timeout # 数据传输延迟的最大时间,超过限制,会话将被终止 默认 300 单位 秒
idle_session_timeout # ftp连接建立后,两次ftp命令之间的时间间隔,超时会话将被终止 默认300 单位 秒
传输速率设置
anon_max_rate # 匿名用户允许的最大传输速率 默认 0 单位 字节/秒
local_max_rate # 本地认证用户的最大传输速率 默认 0 单位 字节/秒
用户创建的文件的权限
anon_umask # 匿名用户创建的文件的默认权限 默认 022 0代表 chmod o-0 也就是拥有所有权限 2 代表chmod o-w 代表没有写权限
local_umask # 本地用户创建的文件的默认权限 默认 022
连接数设置
max_clients # 允许的最大连接数 默认 0
max_per_ip # 单个IP允许的最大连接数 默认 0
端口设置
listen_port=21 # FTP服务器建立连接所侦听的端口 默认 21
ftp_data_port # 数据传输所使用的默认端口 默认 20
connect_from_port_20=YES # 指定FTP数据传输连接使用20端口 默认 NO 。设置为NO时,则进行数据连接时,所使用的端口由ftp_data_port指定。
pasv_max_port=0 # passive 模式下数据传输使用的端口上限 默认 0
pasv_mim_port=0 # passive 模式下数据传输使用的端口下限 默认 0
用户访问权限
chroot_list_enable=YES # 是否改变用户的根目录(用户登录后,默认是访问用户的家目录,开启后可指定到其他目录) 默认 NO。 当设置为YES时,需要以root用户做如下操作:
mkdir /etc/vsftpd/userconf;
cat >>$username<<eof
local_root=$path
EOF
说明 "$username" 是需要改变默认根目录的用户比如用户 aaa,$path 为你想要用户aaa默认访问的路径 ,比如/data/aaa,前提是这个路径存在
控制用户是否允许切换到上级目录
chroot_list_enable=YES # 设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
chroot_list_file=/etc/vsftpd/chroot_list #用于指定存储用户列表文件,该文件用于控制哪些用户只可以访问自己的根目录,不可以访问根路径的上级路径目录。
chroot_local_user=YES #用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
#通过搭配能实现以下几种效果:
#①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到根路径的上级路径;未在文件中列出的用户,则不能切换。
#②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到根路径的上级路径;未在文件中列出的用户,则可以切换。
#③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到用户根路径的上级路径。
#④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到用户根路径的上级路径