FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文本传输协议”。用于Internet上的控制文件的双向传输。
在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
- apt-get安装FTP服务
sudo apt-get install vsftpd
- FTP启动、停止、重启命令
sudo service vsftpd start|stop|restart
sudo /etc/init.d/vsftpd start|stop|restart
- 检查FTP端口是否已经打开,ftp默认情况下,命令端口是21,数据端口就是20,或者直接在浏览器里输入“ftp://服务器IP”
netstat -tnl
- 配置vsftpd.conf文件
sudo vi /etc/vsftpd.conf
- 基本配置
anonymous_enable=NO #是否允许匿名登陆 local_enable=YES # 是否允许本地登陆 write_enable=YES # 设置FTP可写
|
- 用户登录限制
# 允许/etc/vsftpd.userlist用户列表登录 userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd.user_list # 禁止/etc/vsftpd.userlist用户列表登录 userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd.user_list |
3. FTP 用户限制在其 home 目录
- 由chroot_local_user、chroot_list_enable、chroot_list_file这三个文件控制,转别人的一段话:
- 首先,chroot_list_enable好理解,就是:是否启用chroot_list_file配置的文件,如果为YES表示chroot_list_file配置的文件生效,否则不生效;
- 第二,chroot_list_file也简单,配置了一个文件路径,默认是/etc/vsftpd.chroot_list,该文件中会填入一些账户名称。但是这些账户的意义不是固定的,是跟配置项chroot_local_user有关的。后一条中说明;
- 第三,chroot_local_user为YES表示所有用户都*不能*切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。chroot_local_user为NO表示所有用户都*能*切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。也可以理解为,chroot_list_file列出的“例外情况”的用户。
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
# 在本地 root 目录中插入用户名 # 定义各个用户的本地 root 目录 user_sub_token=$USER local_root=/home/$USER |
- FTP服务器配置文件
- 主配置文件:/etc/vsftp.conf
- 权限限制用户列表文件:/etc/vsftp.chroot_list
- 认证配置文件:/etc/pam.d/vsftpd
- 用户列表:/etc/vsftpd.user_list
- 创建FTP用户
sudo useradd ftpuser -m -s /bin/bashsudo passwd ftpuser |
当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
这个问题发生在最新的这是由于下面的更新造成的:
- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES
ftp 账号iSynergy/iSynergy iSynergyAdmin/iSynergyAdmin能够登录到各自的目录下