FTP 使用 VSFTPD“访问被拒绝”

FTP 使用 VSFTPD“访问被拒绝”

我正在运行 Ubuntu 10.04 i386。我使用 Cyber​​duck(FTP GUI 客户端)连接到我的服务器 mysub.domainname.com(在此处更改)。

这就是我想要做的事情:

1)将 apache2 根目录从 更改/var/www/home/myuser/webroot以提供 index.html 等文件

2)允许FTP写入/home/myuser/webroot

3)允许myuser使用其用户名/密码组合登录 FTP 并读取/写入myuser文件夹内的任何位置

Apache2 根文件夹工作正常。转到 myserver.com/index.html 有效。但我无法让 FTP 写入,即使我更改了以下行etc/vsftpd.conf

listen=YES
#listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
#local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=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_list_enable below.
#chroot_local_user=YES
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

问题

每当我尝试在我的 FTP 程序 Cyber​​duck 中创建文件夹/home/myuser/home/myuser/webroot出现错误时。Create directory operation failed.

也许有用的信息:

drwxrwsr-x 2 myuser www-data 4096 2011-04-18 03:04 webroot

我也在这里改变了权限:

-rw-rwSr-- 1 myuser root 69 2011-04-18 02:14 index.html

...但是没有运气。我仍然无法使用 FTP 上传或写入。任何建议或指示都很好,我对此很困惑。

更新:

我尝试启用 FTP 的匿名登录,但根本无法让它工作……我认为唯一的解决办法是彻底清除系统中的 vsftpd 和 apache2,然后重新开始

答案1

对于权限,您需要拥有该文件夹及其中的文件,myuser以便可以从 myuser 帐户访问它们。

如果 Apache(或你的脚本)需要到文件夹,那么最好的做法是使用chgrp将应写入的特定位置分配给 www-data 组,然后分配给chmod g+w该位置或文件。如果您授予文件夹的写访问权限,chmod g+sw则将授予文件夹的写访问权限并确保在那里创建的文件也属于 www-data 组。

在这种情况下,文件和目录看起来像这样:

drwxrwxr-x 2 myuser   www-data    4096 2011-04-18 03:04 webroot
-rw-rw-r-- 1 myuser   www-data    1000 2011-04-18 03:04 index.html
drwxrwsr-x 2 myuser   www-data    4096 2011-04-18 03:04 folderwithg+ws

不过,您需要非常小心地向 apache 授予文件和文件夹的写权限,否则攻击者可能会想出办法让您的脚本覆盖自身或替换 index.html 等。

否则,如果 apache 不需要写入您的文档目录,则只要所有子目录和文件都是全世界可读的(并且目录是全世界可访问的),权限就应该没问题。

对于 SSL/TLS,你缺少

ssl_enable=YES

您可以强制用户使用加密:

force_local_logins_ssl=YES
force_local_data_ssl=YES

ssl_ciphers= 如果你想将其限制为 HIGH 或特定的密码列表,还有一个选项。如果你想要“隐式 SSL”(而不是AUTH SSLAUTH TLS命令来启动加密,加密是在连接开始时协商的),那么implicit_ssl=YES

相关内容