按照 http://xinchibaobei.blog.163.com/blog/static/1263925092009101074313369 搭建好 vsFTP 后,发现只能用 ftp 或 anonymous 用户才能访问,就连root和自己的登录账号都无法访问。 这当然不爽!参考网上抄来抄去的方法,都说要装 libdb3-util ,后面还有
按照
http://xinchibaobei.blog.163.com/blog/static/1263925092009101074313369
搭建好 vsFTP 后,发现只能用 ftp 或 anonymous 用户才能访问,就连root和自己的登录账号都无法访问。
这当然不爽!参考网上抄来抄去的方法,都说要装 libdb3-util ,后面还有大堆的安装和配置,懒得动。
终于发现了实践一族:
http://sam1234567890.blog.163.com/blog/static/60175831200832683258463
http://bbs.linuxpk.com/viewthread.php?tid=11383
多谢两位!(如果嫌我后面说的简陋,可以参考以上两位的博客。)
1. 搭好vsFTP后,/etc目录下需要手动添加3个文件,内容暂时为空:
vsftpd.user_list
ftpusers (这个文件可能原来就有。不用手动加)
vsftpd.chroot_list (这里我没用上,不过先建着)
2. 按如下方式修改 vsftpd.conf 文件:
vsftpd.conf
vim /etc/vsftpd.conf 运行这个就可以进入配置界面
listen=YES 独立运行模式
anonymous_enable=NO/YES (允许匿名登陆吗?=YES 可登陆 =NO 不可登陆)
no_anon_password=NO/YES (匿名登陆要密码吗?=YES 要 =NO 不要)
local_enable=YES/NO 本地用户可登陆吗? =YES 要 =NO 不要
write_enable=YES 本地用户有写权限吗?
local_umask=022 不要动,前面如果有#就去掉,什么意思,不告诉你
connect_from_port_20=YES 端口设成20 ,不想要,自己在改: connect_from_port_205=YES
idle_session_timeout=600 监听,多常时间,没响应,VSFTPD 把你踢出服务器
data_connection_timeout=600 连接服务器后,数据多常时间不能传入,断开服务
chroot_list_enable=YES 这一行,和下面一行,密切相关
chroot_list_file=/etc/vsftpd.chroot_list 这一行,上一行设置YES才生效。意思是:加入到这个文件内的用户,只能访问自己的目录。其它目录不能访问.建立下面有说明.
secure_chroot_dir=/var/run/vsftpd 意思是:vsftpd 运行的目录。
pam_service_name=vsftpd 加密(pam) 传输模式,这个目录内的: /etc/pam.d/vsftpd
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key (KEY文件,不要动)
如果其它的没有。就自己,添加里面。(手动加入的呀。不要懒哦) :
use_localtime=YES
connect_timeout=60
accept_timeout=60
max_clients=8
max_per_ip=8
pasv_min_port=0,pasv_max_port=0
local_max_rate=0
tcp_wrappers=YES
nopriv_user=nobody
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
(这里主要关注倒数第二句:userlist_deny=NO ,这样一来只有vsftpd.user_list文件中指定的用户才能访问)
3. 在 vsftpd.user_list 文件中添加如下内容:
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES(default), never allow users in this file,and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
ftp
4. 这时查看一下 ftpusers 文件中的内容,要把你想允许访问的用户删掉或注释掉。
5. 重启服务:service vsftpd restart
6. 这时你就能用root用户访问了。
如果你想让你登陆Linux的账号也能访问,只要把用户名写进 vsftpd.user_list 就行了。
(还是要确保 ftpusers 文件中没有这个用户)。另外别忘了重启服务。
7. 接下来要添加新用户。
添加用户:adduser iori
添加成功后,在 vsftpd.user_list 文件中添上 iori
重启服务后,就能访问FTP了。
但这里又遇到了一个问题:
如果我想添加一个ftp用户,既只想让他能够访问FTP,但不能让他登陆系统。按如下命令创建:
adduser --shell /sbin/nologin ftpuser
可发现这个用户按7中的操作后还是无法访问FTP,报错:
530 Login incorrect.
Login failed.
这个暂时没解决。