无法上传文件 FTP

无法上传文件 FTP

我通过 FTP 将每个人都限制在他们的主文件夹中。每个主文件夹中都有一个 public_html 目录,我无法将内容上传到该目录。

我已将我的用户添加source到 ftp 组。public_html 文件夹是……

drwxrwsr-x 2 source ftp 4096 public_html

我不确定为什么我无法上传文件。我的权限哪里出了问题?

更新

VSFTPD 日志内容如下:

- TIMESTAMP - [pid 2] CONNECT: Client "xx.xxx.xx.xx"
- TIMESTAMP - [pid 1] [user] OK LOGIN: Client "xx.xxx.xx.xx"

更新

SmartFTP 返回错误:

[18:36:52] SIZE index.php
[18:36:52] 550 Could not get file size.

更新

智能 FTP 日志

[23:15:31] TYPE I
[23:15:31] 200 Switching to Binary mode.
[23:15:31] SIZE index.php
[23:15:31] 550 Could not get file size.
[23:16:02] SIZE index.php
[23:16:02] 550 Could not get file size.
[23:16:32] SIZE index.php
[23:16:32] 550 Could not get file size.
[23:17:02] SIZE index.php
[23:17:02] 550 Could not get file size.
[23:17:32] SIZE index.php
[23:17:32] 550 Could not get file size.
[23:18:02] SIZE index.php
[23:18:02] 550 Could not get file size.
[23:18:12] DELE index.php
[23:18:12] 550 Permission denied.
[23:18:12] DELE test.php
[23:18:12] 550 Permission denied.
[23:18:19] TYPE A
[23:18:20] 200 Switching to ASCII mode

FTP 日志仅显示登录成功消息、哪个用户以及来自哪个 IP。

权限public_html

drwxr-sr-x 2 source ftp 4096 2010-08-15 18:40 public_html

即使 public_html 是 777,我也无法写入它。

答案1

请检查您的 vsftpd.conf 中是否有 write_enable=YES

您可以对用户执行 su(do) 并尝试手动创建文件,这应该可以排除文件系统权限错误。

您能发布 smartftp 和 vsftpd.conf 的完整日志吗?

答案2

我怀疑您的主目录不是全局可执行或可读的,因此问题不在于 publc_html 目录,而在于它的某个父目录。它们的权限是什么?

答案3

这是强制执行 selinux 的基于 redhat 的系统吗?输入:
getenforce并让我们知道它说了什么,如果强制执行,您需要特别允许 FTP 用户访问他们的主目录:
setsebool -P ftp_home_dir=1

另外,你能以用户身份访问主目录吗?这听起来很愚蠢,但权限可能是错误的。以 root 身份通过 SSH 进入并尝试:
su - username
它应该会自动进入他们的主目录,然后 cd 进入 public_html 并使用进行验证
pwd,如果没有,则 cd 进入目录。如果不能,则可能是权限问题。
接下来,尝试写入文件:
echo "test" >> test.txt如果不行,则再次出现权限问题。

答案4

chown -R username:groupname /path/to/public_html/

相关内容