我试图在亚马逊云服务器上设置FTP,但没有运气。 我在网上搜索,没有具体的步骤如何做到这一点。

我找到了这些命令:

$ yum install vsftpd
$ ec2-authorize default -p 20-21
$ ec2-authorize default -p 1024-1048
$ vi /etc/vsftpd/vsftpd.conf
#<em>---Add following lines at the end of file---</em>
    pasv_enable=YES
    pasv_min_port=1024
    pasv_max_port=1048
    pasv_address=<Public IP of your instance>
$ /etc/init.d/vsftpd restart

但我不知道在哪里写。


当前回答

直到你通过下面的命令将你的用户添加到www组中才可以使用:

sudo usermod -a -G www <USER>

这就解决了权限问题。

通过添加这个来设置默认路径:

local_root=/var/www/html

其他回答

直到你通过下面的命令将你的用户添加到www组中才可以使用:

sudo usermod -a -G www <USER>

这就解决了权限问题。

通过添加这个来设置默认路径:

local_root=/var/www/html

除了clone45的回答之外,也许值得一提的是:

修复vsftpd中root FTP用户的写权限 Ubuntu 12.04 Precise附带的vsftpd版本没有 默认允许chroot本地用户写入。默认情况下是这样的 在/etc/vsftpd.conf文件中: chroot_local_user = YES write_enable = YES 为了允许本地用户写入,需要添加如下参数: allow_writeable_chroot = YES

注意: 写权限的问题可能会出现如下FileZilla错误:

Error: GnuTLS error -15: An unexpected TLS packet was received.
Error: Could not connect to server

引用: 修复vsftpd中root FTP用户的写权限 VSFTPd更新后停止工作

不要忘记更新你的iptables防火墙,如果你有一个允许20-21和1024-1048范围。

从/etc/sysconfig/iptables执行此操作

像这样添加行:

a INPUT -m state——state NEW -m tcp -p tcp——dport 20:21 -j ACCEPT -A INPUT -m state——state NEW -m tcp -p tcp——dport 1024:1048 -j ACCEPT

然后重新启动iptables:

Sudo服务iptables重启

以防你得到530密码不正确

还需要一步

在/etc/shell文件中

添加以下行

/bin/false

我简化了clone45步骤:

按他说的打开端口

sudo su
sudo yum install vsftpd
echo -n "Public IP of your instance: " && read publicip
echo -e "anonymous_enable=NO\npasv_enable=YES\npasv_min_port=1024\npasv_max_port=1048\npasv_address=$publicip\nchroot_local_user=YES" >> /etc/vsftpd/vsftpd.conf
sudo /etc/init.d/vsftpd restart