VSFTPD,553无法创建文件。-权限?


31

我已经使用Amazon Linux AMI在Amazon EC2上设置了VSFTPD。我创建了一个用户,现在可以通过ftp成功连接。但是,如果尝试上载某些内容,则会收到错误消息“ 553无法创建文件”。

我认为这与权限有关,但是我对它的了解还不足以解决该问题。因此,基本上,我必须怎么做才能上传文件?


检查selinux设置。将boolean allow_ftpd_full_access配置为ON

Answers:


18

发生这种情况的可能原因有两个-您对通往您要上传到的目录的目录没有写和执行权限,或者vsftpd配置为不允许您上传。

在前一种情况下,请使用chmodchown适当地确保您的用户对每个中间目录都具有这些权限。写入位允许受影响的用户在目录中创建,重命名或删除文件,以及修改目录的属性,而读取位允许受影响的用户在目录中列出文件。由于路径中的中间目录也会影响这一点,因此必须适当设置权限,以导致最终要上传到的目标位置。

在后一种情况下,请查看您的vsftpd.confwrite_enable必须为true以允许写入(默认为false)。有关此配置文件的详细文档,请参见man 5 vsftpd.conf


10
这些似乎都不是问题。我尝试将所有内容更改为777(不安全)并设置为write_enable = YES,但仍然收到此无用的错误消息。
塞林

@Cerin您能够修复它吗?如果是,您可以分享详细信息吗?
unknownerror

34

你可以试试这个吗

chown -R ftpusername /var/www/html

5
搭配chmod 757 -R /无功/网络/ HTML
埃尔南Eche

1
@HernánEche感谢您的提示,我已经狩猎了几个小时,终于解决了我的问题。
Tr0yJ

您能否详细说明情况,这是在服务器上还是在本地?
爱德华·洛佩兹

1
@HernánEche嘿,它也为我工作,但它是否安全。它不适用于755
viv

1
@HernánEche您应该单独回答。您的建议对我无济于事。
肖尔说我支持莫妮卡

11

该命令ftp put /path/to/local_file不适用于vsftpd。请尝试以下操作:

ftp put /path/to/local_file remote_file_name 

您可以选择所需的任何名称remote_file_name,但必须指定一个。


2
您可能需要考虑在答案中添加更多详细信息(例如,一些支持解决方案有效性的文档)。
HalosGhost 2014年

发生这种情况的原因是(如果)在/path/to/服务器上不存在(和/或无法通过FTP会话访问)。这就是为什么ftp put local_file 没有显式目的地的情况下工作的原因。(提示:检查local: … remote: …FTP客户端中的行。)
Skippy le Grand Gourou

1
它为我工作!:)
Paulo

3

在SeLinux中,很可能已关闭FTP主目录(ftp_home_dir)。要查看ftpd控制文件的状态,请发出:getsebool -a并找到ftpd部分。您可能会注意到ftp_home_dir已关闭。要打开它,请使用以下命令:setsebool -P ftp_home_dir=1

使用验证您的输入getsebool -a,然后再次尝试上传。

注意:忽略标点符号


2

我遇到了同样的问题,并修复了更改SELinux的问题,以允许在配置为的文件夹中进行写入vsftp = /var/ftp/pub

这些链接可能会有所帮助:

如果您不想进一步使用SELinux,请不要更改它,因此将默认显示 /etc/selinux/config

SELINUX=enforcing

然后只需以root用户身份或通过sudo以下命令运行命令:

sudo setsebool -P ftpd_anon_write 1
sudo setsebool -P ftpd_full_access 1

如上文其他评论中所述。


1

检查您vsftpd.conf的以下设置:

guest_enable=YES # set it to NO then restart the vsftpd service.

如果设置为YES,也会导致553 Could not create file

来自:http : //www.vsftpd.beasts.org/vsftpd_conf.html

guest_enable 如果启用,则所有非匿名登录均被分类为“访客”登录。来宾登录名将重新映射到guest_username设置中指定的用户。

默认值:否



0

另一种可能性:检查用户/组的磁盘配额

分机:

repquota -a

xfs:

xfs_quota -x -c 'report' /mount_point

0

下一个参数将使ftpd可以在任何地方进行写操作:

setsebool -P ftpd_full_acess=true 

ftpd_anon_write除非要允许匿名上传,否则不要使用。



-1

对于Fedora23,请运行以下命令:

setsebool -P ftpd_anon_write 1 
setsebool -P ftpd_full_access 1

它为我工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.