题 无法上传文件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我也无法写信给它。


5
2017-08-14 01:55




这是一个虚拟主机服务器还是个人服务器?你的ftp是如何配置的以及你使用的是哪个ftpserver - Prix
还有什么是ftp在你尝试上传内容时告诉你的错误?这可能是由于端口20被防火墙阻塞的事实,ftp使用20和21进行通信和发送/接收数据。 - Prix
你的日志说什么?你能打开更详细的日志记录吗? - Matt
文件系统大小是否已满? - Alvin Sim
不,这是一个全新安装,在500GB硬盘上没有网站。 - Webnet


答案:


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

你可以su(do)给用户并尝试手工制作文件,这应该排除文件系统权限错误。

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


4
2017-08-17 15:07



这绝对是我错过的东西。但是我仍然无法将index.php上传到该目录 - Webnet
在服务器端:您可以尝试上传另一个文件名吗?你能尝试成为那个用户(su / sudo)并在该目录中创建一个文件(touch indexmanual.php)吗?在客户端:看起来你的smartftp日志错过了有趣的位(STOR),不确定是否真的发生了。你可以试试filezilla或其他一些ftp客户端吗? - Joris


我怀疑你的homedirs不是全局可执行的或可读的,因此它不是publc_html目录的问题,而是它的一个父目录。他们的烫发是什么?


0
2017-08-17 17:42





这是一个强制执行selinux的基于redhat的系统吗?类型:
getenforce 并让我们知道它的内容,如果它强制执行,您需要专门允许FTP用户访问其主目录:
setsebool -P ftp_home_dir=1

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


0
2017-08-18 11:43



这是一个ubuntu服务器 - Webnet


我知道你说你已经尝试了777权限,但上面的两个例子都没有显示777(rwxrwxrwx)。当然这不应该是必需的,但排除这种可能性可能是有用的。

另一件事是,您可能需要将STOR命令添加到cmds_allowed指令中(如果您有一个,并且该命令尚不存在)。

一个相当全面的列表可能是类似的

cmds_allowed = ABOR,CWD,LIST,MDTM,MKD,NLST, PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR, RNTO,部位,大小,STOR,类型,用户,ACCT, APPE,CDUP,帮助模式,NOOP,REIN,STAT,STOU,STRU,SYST


0
2017-08-19 14:34



是cmds_allowed应该通过VSFTPD配置管理的东西? - Webnet
我没有看到在vsftpd.conf中预先配置了该选项,但我还添加了这些命令。 sudo /etc/init.d/vsftpd restart 似乎没有重启VSFTPD - Webnet


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

0
2017-08-24 05:05