Ubuntu server 14.04下安装以及配置vsftpd

Ubuntu server 14.04下安装以及配置vsftpd

废话不多说,直接安装

sudo aptitude install vsftpd

配置目标:一个不能本地登录的用户使用密码登陆ftp,禁止匿名登陆上传以及下载

sudo vim /etc/vsftpd.conf

注析掉以下行的"#"

local_enables=YES        /*   本地用户可登陆  */
write_enable=YES       /*   用户可写  */
local_umask=022       /*   用户创建文件的默认权限  */
ascii_upload_enable=YES      /*   可以文本方式上传  */
ascii_download_enable=YES         /*   可以文本方式下载  */
chroot_local_user=YES        /*    限制用户在自己主目录操作 */

在文本末新增以下行

allow_writeable_chroot=YES              /*  reference point 1  */

因为设置了chroot,因此以上行必须添加,要不然登陆时会提示错误

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

 

建立一个用户专门用于登陆ftp的,为了达到最精简的建立,因此使用useradd命令(这也是我撞破头的一个原因,有关useradd和adduser的区别,请网上查找)

sudo useradd -c "ftp user" -d /srv/ftp/demo -m -U -s /usr/sbin/nologin demo
-c 就是用户的备注说明
-d 就是指定用户 主目录位置(不是建立,是指定)
-m 就是建立用户主目录,如果没有
-U 就是建立与用户名相同的用户组
-s 就是用户shell(*************这就是我撞破头的主要原因********************)

给用户设置密码(这就是我撞破头的另一个主要原因)

sudo passwd demo

(也是这个,我一直没发现我新建的用户没有密码,导致出现500或者530错误)

 

根据https://help.ubuntu.com/lts/serverguide/serverguide.pdf   说明,ubuntu server 14.04对shell有严格要求,加上vsftp使用pam认证,因此必须修改我新建用户的shell在允许的范围,

sudo vim /etc/shells

行末添加

/usr/sbin/nologin

(也就是这个不断出现530错误,导致我以为哪里出错了)

最后,就是重启

sudo service vsftpd restart

 (vsftpd居然不是基本服务,bash下tab键居然没得补全,汗)

最后 ftp localhost 测试一下就可以了

 

reference:

  1. http://blog.csdn.net/bluishglc/article/details/42399439

 

转载于:https://my.oschina.net/doctorlzr1988/blog/542083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值