我正在尝试使用单个用户“ftpuser”设置我的 Apache,以便能够共享/访问/var/www/html
包含各种文件/子目录的目录。但是,当我通过 FTP 在“ftpuser”下登录时,所有内容都是空的,我无法上传任何内容。以下是我执行此操作的步骤:
其中概述了以下步骤:
- 为 umask 0027 设置 vsftpd (
/etc/vsftpd.conf
) [local_umask=0027] - 创建 www 组 (groupadd www)
- 将用户添加到组(
usermod -a -G www apache
和 www ftpuser 相同的命令) - 将 apache 设置为以 www 组身份运行(httpd.conf)
chgrp www /var/www
chmod 2775 /var/www
完成所有这些操作后,我重新启动了 Apache/vsftpd。但是,当我尝试通过 FTP 访问时,目录是空白的,如果我尝试创建文件,系统会提示“无法启动数据传输”。我猜想这是权限被拒绝的错误。
我还编辑了/etc/passwd
文件并将主目录更改为/var/www/html
。有人能解释一下问题是什么吗?谢谢。
编辑:
如果其他人也遇到此问题,则问题在于 selinux 已被禁用,但实际上并未禁用。它需要重新启动才能被禁用,并且不再锁定主目录。如果您想保持 selinux 处于启用状态,请使用以下命令:
setsebool -P ftp_home_dir on
希望这对某人有帮助。
答案1
这更有可能是“协议”或“防火墙”错误,而不是密码错误。您可能想尝试在主动和被动模式之间切换,同时看看如果您尝试从 FTP 服务器在“本地主机”上运行的框进行 FTP 会发生什么,以排除防火墙中的错误。
另外,虽然我不使用 VSFTP,但您几乎肯定会有一个日志文件。如果您找到日志文件,它应该会为您提供有关错误的更多信息(至少如果它是密码错误)