Ubuntu 14.04 搭建 vsftpd 服务器
需要搭建一个独立静态文件服务器,作为源服务器,给阿里云做 CDN 文件分发,我没有选择阿里云的 OSS 作为源存储,而是用自己的服务器。
多个应用程序选择 FTP 上传文件,到源文件服务器上。而放弃了挂载的方式,一来是集中管理,二来担心挂载出现问题,所以决定配置 FTP 服务器的方式做。我不能确定这种方式是否是最好的,在我这边算是比较合适的。
其实只需要简单搭建,不是要涉及到新建数据库,虚拟账号这些复杂的配置,用户使用系统用户,禁止登陆 shell 就行。整个搭建更注重实用性和可靠性。
废话少说,开始搭建 FTP 服务器了
ubuntu 14.04 搭建 vsftpd 服务器
一、首先安装 vsftpd
前奏系统更新一下
sudo apt-get install upgrade
sudo apt-get install update
安装vsftpd
sudo apt-get install vsftpd
打开配置文件
nano /etc/vsftpd.conf
全部的新配置文件(替换配置前,记得备份文件)
listen=YES
listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
check_shell=NO
allow_writeable_chroot=YES
配置文件是关键的选项,其中不一一解释
新建一个附属文件
touch /etc/vsftpd.chroot_list
二、添加ftp用户和增加密码,设置相关权限
先新建ftp 的目录
sudo mkdir /home/ftp
新建 ftp 用户 ftpuser
sudo useradd ftpuser -d /home/ftp -s /bin/false
设置 ftpuser 的密码
sudo passwd ftpuser
设置 ftpuser 的权限和所属
sudo chown -R ftpuser:ftp /home/ftpuser
sudo chmod -R 700 /home/ftpuser
三、改 pam.d/vsftpd (很关键)
这时候直接用useradd的帐号登录ftp会530 login incorrectsudo nano /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
四、重启vsftpd
sudo service vsftpd restart
使用 ftp 客户端访问试试看吧,ip 是服务器的ip,端口21,用户和密码省略。
五、附加信息
ftpuser 的目录和权限很重要,实际应用中,我们可能需要修改 ftpuser 的所属目录
给 ftpuser 用户指定新的所属目录
usermod -d /var/ftpuser/pub/squal ftpuser
把 ftpuser 老的所属目录迁移到新的地方
usermod -d -m /var/ftpuser/pub/squal ftpuser
只删除用户,不删除所属目录
userdel ftpuser
删除用户,并一起把所属目录删除(该指令很危险,删除了所属目录和所有文件,意味着 ftpuser 上传的文件都被删除了)
userdel –r ftpuser
查看用户所在的组和ID
id ftpuser
查看所有用户
cat /etc/passwd
更改用户的密码
sudo passwd ftpuser
哇~~~ 竟然还没有评论!