ubuntu20.04源码安装ftp
一、安装依赖包openssl_1.1.1f-ubuntu2.17_amd64.deb
下载网址http://cz.archive.ubuntu.com/ubuntu/pool/main/o/openssl/,找了半天在该源下只有openssl_1.1.1f-ubuntu2.18_amd64.deb了,下载应该也可。
安装sudo dpkg -i openssl_1.1.1f-ubuntu2.18_amd64.deb
二、ftp安装和配置
2.1安装
下载地址:https://toscode.gitee.com/eaglegai/vsftpd/blob/master/vsftpd-3.0.3.tar.gz
在下载目录,打开终端,执行代码:
sudo cp vsftpd-3.0.3.tar.gz /usr/local/src/
cd /usr/local/src/
sudo tar -zxvf vsftpd-3.0.3.tar.gz
cd vsftpd-3.0.3
sudo chmod +x vsf_findlibs.sh
sudo make
sudo make install
sudo make install出错,install: 无法创建普通文件’/usr/local/man/man8/vsftpd.8’: 没有那个文件或目录
install: 无法创建普通文件’/usr/local/man/man5/vsftpd.conf.5’: 没有那个文件或目录
修改方法:修改安装目录下的Makefile文件中的文件
if [ -x /usr/local/sbin ]; then \
install -m 755 vsftpd /usr/local/sbin/vsftpd; \
else \
install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
elif [ -x /usr/share/man ]; then \
install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
else \
install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
改为:
if [ -x /usr/local/sbin ]; then \
install -m 755 vsftpd /usr/local/sbin/vsftpd; \
else \
install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
elif [ -x /usr/share/man ]; then \
install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
else \
install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
之后sudo make install 不报错即成功。
接下来是配置
在 vsftpd-3.0.3目录下,打开终端,执行下述代码:
sudo useradd nobody
sudo mkdir /usr/share/empty/
sudo mkdir /var/ftp
sudo useradd -d /var/ftp ftp
sudo chown root.root /var/ftp
sudo chmod og-w /var/ftp
sudo cp vsftpd /usr/local/sbin/vsftpd
sudo cp vsftpd.conf.5 /usr/local/share/man/man5
sudo cp vsftpd.8 /usr/local/share/man/man8
sudo cp vsftpd.conf /etc/直接输入1次<kbd>
vsftpd.conf配置,先用指令:sudo gedit /etc/vsftpd.conf将vsftpd.conf先进行保存,以免修改出错而找不到原版)sudo gedit /etc/vsftpd.conf,打开vsftpd.conf后,配置如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
file_open_mode=0777
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES【无标题】
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES
ftp_username=nobody
2.2配置开机自启
1.设置启动脚本rc-local.service
cd /lib/systemd/system
sudo vi rc-local.service
在文档末尾添加
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
修改文档权限
sudo chmod 777 /lib/systemd/system/rc-local.service
ubuntu20.04没有配置文件/etc/rc.local,故新建之,rc.local文件的内容为:
#!/bin/sh
/usr/local/sbin/vsftpd &
ps: #!/bin/sh 一定要加上,否则ubuntu不会视它为可执行文件的!我这个大冤种
给/etc/rc.local文件加权限
sudo chmod 777 /etc/rc.local
创建在/etc/systemd/system/目录下的软连接
ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/
重启,开机后在终端输入
ps -ef | grep vsftpd
如果有vsftpd运行的进程,则说明开机自启设置成功。
三、测试ftp是否配置成功
我的测试方法是用两台电脑,互相 ftp 对方IP,若成功,则成功;不成功则重新配置vsftpd.conf