dd-wrt 下U盘挂载/opt vsftpd的安装

less than 1 minute read

dd-wrt官方的wiki是在/jffs下安装的,对于u盘挂载在/opt,使用ipkg-opt安装包的环境,需要一些改写。

安装vsftpd到/opt
ipkg-opt install vsftpd

创建安全空目录
mkdir /opt/var/run/vsftpd

编辑配置文件
vi /opt/etc/vsftpd.conf

如下配置文件是只使用单一root用户的参考,具体的配置可以详查vsftpd的手册
secure_chroot_dir=/opt/var/run/vsftpd
ftp_username=root
nopriv_user=root
background=YES
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO
dirmessage_enable=YES
ftpd_banner=ROUTER

依照官方wiki,需要建立nobody用户,但是貌似我没建立依然可以用
没有使用/jffs 命令改写如下
echo "nobody:Password:0:0:User,,,:/tmp/root:/bin/sh" >> /tmp/etc/passwd

编辑启动脚本
这里官方wiki略显粗糙,我也略改能用
由于dd-wrt并非使用标准libc而是uClibc所以得使用uClibc来运行vsftpd
先请去/opt/libc下看看libuClibc的版本号,我的是0.9.28.0而不是官方官方wiki的0.9.27.0如果没有libuClibc,自行安装
把如下的脚本保存到一个文件中,例如/opt/start
export LD_PRELOAD='/opt/lib/libuClibc-0.9.28.so'
/opt/sbin/vsftpd /opt/etc/vsftpd.conf
unset LD_PRELOAD
env > /dev/null
保存后给此文件加上执行属性
chmod +x /opt/start

在/opt下执行 ./start 来启动vsftpd 太粗糙了啊,竟然连/opt/etc/init.d/vsftpd也没有啊

Reference:
1. 官方wiki:http://www.dd-wrt.com/wiki/index.php/Vsftpd