搭建FTP server的方法有很多种,比如windows上非常流行的filezilla。ubuntu上搭建ftp server的好处是系统对机器的硬件要求低,运行速度快,更加稳定,而且操作系统免费(对公司而言)。
下面是最简单的一种搭建方法,需求是建立三个账号,一个read-only,两个write-permission。步骤如下:
1. 安装ftp server组件vsftpd(very secured ftp daemon)
sudo apt-get update
sudo apt-get vsftpd
2. 备份vsftpd.conf文件
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
3. 编译vsftpd.conf文件,重点是下面几行:
anonymous_enable=NO #禁止匿名访问
local_enable=YES #允许本地用户登录
write_enable=YES #允许登录用户上传文件
chroot_local_user=YES #登录用户只能在访问自身的用户目录中的内容
user_sub_token=$USER
local_root=/home/$USER/ftp #登录用户进入的目录是自身home的ftp子目录
4. 创建本地用户,假定user1和user2是可写用户,user3是只读用户。创建用户组ftpaccess来包含有些权限的用户。
sudo addgroup ftpaccess
sudo adduser -g ftpaccess user1 #在之后的系统提示中设定用户的密码
sudo adduser -g ftpaccess user2
sudo adduser user3
现在我们有了用户组ftpaccess,里面包含user1和user2两个用户,用户user3不在ftpaccess组里
5. 创建ftp目录,并为每个用户创建/home/$USER/ftp软链接,指向这个ftp目录。为了简单起见,我们将ftp目录设定为/home/user1/ftp
sudo su user1
mkdir /home/user1/ftp
sudo chown -R user1:ftpaccess /home/user1/ftp
exit
===============================
sudo su user2
cd
ln -s /home/user1/ftp ftp
exit
===============================
sudo su user3
cd
ln -s /home/user1/ftp ftp
exit
6. 重启ftp service
sudo service vsftpd restart
7. 现在我们就可以从其他电脑上用ftp客户端登陆了,允许登录账号只有三个,user1, user2, user3,其中前两个可写,第三个只读。